/* Ephox PowerPaste plugin
 *
 * Copyright 2010-2016 Ephox Corporation.  All rights reserved.
 *
 * Version: 2.1.10-115
 */

!function () {
    var a = {}, b = function (b) {
        for (var c = a[b], e = c.deps, f = c.defn, g = e.length, h = new Array(g), i = 0; i < g; ++i) h[i] = d(e[i]);
        var j = f.apply(null, h);
        if (void 0 === j) throw"module [" + b + "] returned undefined";
        c.instance = j
    }, c = function (b, c, d) {
        if ("string" != typeof b) throw"module id must be a string";
        if (void 0 === c) throw"no dependencies for " + b;
        if (void 0 === d) throw"no definition function for " + b;
        a[b] = {deps: c, defn: d, instance: void 0}
    }, d = function (c) {
        var d = a[c];
        if (void 0 === d) throw"module [" + c + "] was undefined";
        return void 0 === d.instance && b(c), d.instance
    }, e = function (a, b) {
        for (var c = a.length, e = new Array(c), f = 0; f < c; ++f) e.push(d(a[f]));
        b.apply(null, b)
    }, f = {};
    f.bolt = {module: {api: {define: c, require: e, demand: d}}};
    var g = c, h = function (a, b) {
        g(a, [], function () {
            return b
        })
    };
    h("12", Array), h("13", String), g("g", ["12", "13"], function (a, b) {
        var c = function (a) {
            return function (b) {
                return a === b
            }
        }, d = function () {
            var b = a.prototype.indexOf, d = function (a, c) {
                return b.call(a, c)
            }, e = function (a, b) {
                return r(a, c(b))
            };
            return void 0 === b ? e : d
        }(), e = function (a, b) {
            return d(a, b) > -1
        }, f = function (a, b) {
            return r(a, b) > -1
        }, g = function (a, b) {
            for (var c = [], d = 0; d < a.length; d += b) {
                var e = a.slice(d, d + b);
                c.push(e)
            }
            return c
        }, h = function (b, c) {
            for (var d = b.length, e = new a(d), f = 0; f < d; f++) {
                var g = b[f];
                e[f] = c(g, f, b)
            }
            return e
        }, i = function (a, b) {
            for (var c = 0, d = a.length; c < d; c++) {
                var e = a[c];
                b(e, c, a)
            }
        }, j = function (a, b) {
            for (var c = [], d = [], e = 0, f = a.length; e < f; e++) {
                var g = a[e], h = b(g, e, a) ? c : d;
                h.push(g)
            }
            return {pass: c, fail: d}
        }, k = function (a, b) {
            for (var c = [], d = 0, e = a.length; d < e; d++) {
                var f = a[d];
                b(f, d, a) && c.push(f)
            }
            return c
        }, l = function (a, b) {
            if (0 === a.length) return [];
            for (var c = b(a[0]), d = [], e = [], f = 0, g = a.length; f < g; f++) {
                var h = a[f], i = b(h);
                i !== c && (d.push(e), e = []), c = i, e.push(h)
            }
            return 0 !== e.length && d.push(e), d
        }, m = function (a, b, c) {
            return n(z(a), b, c)
        }, n = function (a, b, c) {
            return i(a, function (a) {
                c = b(c, a)
            }), c
        }, o = function (a, b) {
            for (var c = 0, d = a.length; c < d; c++) {
                var e = a[c];
                if (b(e, c, a)) return e
            }
        }, p = function (a, b, c) {
            var d = o(a, b);
            return void 0 !== d ? d : c
        }, q = function (a, c, d) {
            var e = o(a, c);
            if (void 0 === e) throw d || "Could not find element in array: " + b(a);
            return e
        }, r = function (a, b) {
            for (var c = b || v, d = 0, e = a.length; d < e; ++d) if (c(a[d]) === !0) return d;
            return -1
        }, s = a.prototype.push, t = function (a) {
            for (var b = [], c = 0, d = a.length; c < d; ++c) s.apply(b, a[c]);
            return b
        }, u = function (a, b) {
            var c = h(a, b);
            return t(c)
        }, v = c(!0), w = function (a, b) {
            for (var c = b || v, d = 0, e = a.length; d < e; ++d) if (c(a[d], d) !== !0) return !1;
            return !0
        }, x = function (a, b) {
            return a.length === b.length && w(a, function (a, c) {
                return a === b[c]
            })
        }, y = a.prototype.slice, z = function (a) {
            var b = y.call(a, 0);
            return b.reverse(), b
        }, A = function (a, b) {
            return k(a, function (a) {
                return !e(b, a)
            })
        }, B = function (a, c) {
            for (var d = {}, e = 0, f = a.length; e < f; e++) {
                var g = a[e];
                d[b(g)] = c(g, e)
            }
            return d
        }, C = function (a) {
            return [a]
        };
        return {
            map: h,
            each: i,
            partition: j,
            filter: k,
            groupBy: l,
            indexOf: d,
            foldr: m,
            foldl: n,
            find: o,
            findIndex: r,
            findOr: p,
            findOrDie: q,
            flatten: t,
            bind: u,
            forall: w,
            exists: f,
            contains: e,
            equal: x,
            reverse: z,
            chunk: g,
            difference: A,
            mapToObject: B,
            pure: C
        }
    }), g("p", ["12"], function (a) {
        var b = function () {
        }, c = function (a, b) {
            return function () {
                return a(b.apply(null, arguments))
            }
        }, d = function (a) {
            return function () {
                return a
            }
        }, e = function (a) {
            return a
        }, f = function (a, b) {
            return a === b
        }, g = function (b) {
            for (var c = new a(arguments.length - 1), d = 1; d < arguments.length; d++) c[d - 1] = arguments[d];
            return function () {
                for (var d = new a(arguments.length), e = 0; e < d.length; e++) d[e] = arguments[e];
                var f = c.concat(d);
                return b.apply(null, f)
            }
        }, h = function (a) {
            return function () {
                return !a.apply(null, arguments)
            }
        }, i = function (a) {
            return function () {
                throw a
            }
        }, j = function (a) {
            return a()
        }, k = function (a) {
            a()
        };
        return {
            noop: b,
            compose: c,
            constant: d,
            identity: e,
            tripleEquals: f,
            curry: g,
            not: h,
            die: i,
            apply: j,
            call: k
        }
    }), h("14", Object), g("n", ["p", "14"], function (a, b) {
        var c = a.constant(!1), d = a.constant(!0), e = function () {
            return f
        }, f = function () {
            var f = function (a) {
                return a.isNone()
            }, g = function (a) {
                return a()
            }, h = function (a) {
                return a
            }, i = {
                fold: function (a, b) {
                    return a()
                },
                is: c,
                isSome: c,
                isNone: d,
                getOr: h,
                getOrThunk: g,
                getOrDie: function (a) {
                    throw a || "error: getOrDie called on none."
                },
                or: h,
                orThunk: g,
                map: e,
                ap: e,
                each: e,
                bind: e,
                flatten: e,
                exists: c,
                forall: d,
                filter: e,
                equals: f,
                equals_: f,
                toArray: function () {
                    return []
                },
                toString: a.constant("none()")
            };
            return b.freeze && b.freeze(i), i
        }(), g = function (a) {
            var b = function () {
                return a
            }, h = function () {
                return k
            }, i = function (b) {
                return g(b(a))
            }, j = function (b) {
                return b(a)
            }, k = {
                fold: function (b, c) {
                    return c(a)
                },
                is: function (b) {
                    return a === b
                },
                isSome: d,
                isNone: c,
                getOr: b,
                getOrThunk: b,
                getOrDie: b,
                or: h,
                orThunk: h,
                map: i,
                ap: function (b) {
                    return b.fold(e, function (b) {
                        return g(b(a))
                    })
                },
                each: i,
                bind: j,
                flatten: b,
                exists: j,
                forall: j,
                filter: function (b) {
                    return b(a) ? k : f
                },
                equals: function (b) {
                    return b.is(a)
                },
                equals_: function (b, d) {
                    return b.fold(c, function (b) {
                        return d(a, b)
                    })
                },
                toArray: function () {
                    return [a]
                },
                toString: function () {
                    return "some(" + a + ")"
                }
            };
            return k
        }, h = function (a) {
            return null === a || void 0 === a ? f : g(a)
        }, i = function (a, b) {
            return a.equals(b)
        }, j = function (a, b, c) {
            return a.equals_(b, c)
        };
        return {some: g, none: e, from: h, equals: i, equals_: j}
    }), g("c", ["g", "p"], function (a, b) {
        return function (c) {
            var d = function () {
                c.uploadImages()
            }, e = function (d) {
                a.each(d, function (d) {
                    d.fold(function (b, d, e, f) {
                        a.each(c.dom.select('img[src="' + e + '"]'), function (a) {
                            c.dom.setAttrib(a, "src", f.result)
                        })
                    }, b.noop)
                })
            }, f = function (a, b, c, d) {
                return d.result
            };
            return {uploadImages: d, prepareImages: e, getLocalURL: f}
        }
    }), g("y", [], function () {
        return function (a) {
            var b = !1;
            return function () {
                b || (b = !0, a.apply(null, arguments))
            }
        }
    }), h("2", tinymce), g("d", ["2"], function (a) {
        var b = function () {
            return "Your browser security settings may be preventing images from being imported."
        }, c = function () {
            return a.Env.mac && a.Env.webkit ? b() + ' <a href="https://support.ephox.com/entries/59328357-Safari-6-1-and-7-Flash-Sandboxing" style="text-decoration: underline">More information on paste for Safari</a>' : b()
        }, d = function () {
            return 'Safari does not support direct paste of images. <a href="https://support.ephox.com/entries/88543243-Safari-Direct-paste-of-images-does-not-work" style="text-decoration: underline">More information on image pasting for Safari</a>'
        }, e = {
            "cement.dialog.paste.title": "Paste Formatting Options",
            "cement.dialog.paste.instructions": "Choose to keep or remove formatting in the pasted content.",
            "cement.dialog.paste.merge": "Keep Formatting",
            "cement.dialog.paste.clean": "Remove Formatting",
            "cement.dialog.flash.title": "Additional step needed to paste images",
            "cement.dialog.flash.trigger-paste": "Your browser requires you to take one more action to paste the images in your content. Please press the below keys to complete the image paste:",
            "cement.dialog.flash.missing": 'Adobe Flash is required to import images from Microsoft Office. Install the <a href="http://get.adobe.com/flashplayer/" target="_blank">Adobe Flash Player</a>.',
            "cement.dialog.flash.press-escape": 'Press <span class="ephox-polish-help-kbd">"Close"</span> to paste your content without images.',
            "loading.wait": "Please wait...",
            "flash.clipboard.no.rtf": c(),
            "safari.imagepaste": d(),
            "webview.imagepaste": d(),
            "error.code.images.not.found": "The images service was not found: (",
            "error.imageupload": "Image failed to upload: (",
            "error.full.stop": ").",
            "errors.local.images.disallowed": "Local image paste has been disabled. Local images have been removed from pasted content.",
            "flash.crashed": "Images have not been imported as Adobe Flash appears to have crashed. This may be caused by pasting large documents.",
            "errors.imageimport.failed": "Some images failed to import.",
            "errors.imageimport.unsupported": "Unsupported image type.",
            "errors.imageimport.invalid": "Image is invalid."
        }, f = function (a) {
            return e[a]
        }, g = function (b) {
            return a.translate(f(b))
        };
        return {translate: g}
    }), g("s", [], function () {
        return {
            showDialog: function (a, b) {
                var c = function () {
                        win.close()
                    }, d = [{text: "Ok", onclick: c}],
                    e = {title: "Error", spacing: 10, padding: 10, items: [{type: "container", html: b}], buttons: d};
                win = a.windowManager.open(e)
            }
        }
    }), g("15", ["y", "d", "s"], function (a, b, c) {
        return function (d, e) {
            var f = function () {
                return b.translate("error.code.images.not.found") + e + b.translate("error.full.stop")
            }, g = function () {
                return b.translate("error.imageupload") + e + b.translate("error.full.stop")
            }, h = function (a) {
                var b = a.status(), e = 0 === b || b >= 400 || b < 500, h = e ? f : g;
                c.showDialog(d, h())
            }, i = function () {
                return a(h)
            };
            return {instance: i}
        }
    }), g("3g", ["g"], function (a) {
        var b = function (b) {
            var e = c(b), f = function (b) {
                var c = b.split(" "), f = a.map(c, function (a) {
                    return d(e, a)
                });
                return f.join(" ")
            };
            return {resolve: f}
        }, c = function (a) {
            return a.replace(/\./g, "-")
        }, d = function (a, b) {
            return a + "-" + b
        };
        return {create: b, cssNamespace: c, cssClass: d}
    }), g("2d", ["3g"], function (a) {
        var b = a.create("ephox-salmon");
        return {resolve: b.resolve}
    }), g("26", ["p", "2d"], function (a, b) {
        var c = b.resolve("upload-image-in-progress"), d = "data-" + b.resolve("image-blob");
        return {uploadInProgress: a.constant(c), blobId: a.constant(d)}
    }), g("3h", [], function () {
        return function (a, b, c) {
            var d = c || !1, e = function () {
                b(), d = !0
            }, f = function () {
                a(), d = !1
            }, g = function () {
                var a = d ? f : e;
                a()
            }, h = function () {
                return d
            };
            return {on: e, off: f, toggle: g, isOn: h}
        }
    }), g("1b", ["12", "13"], function (a, b) {
        var c = function (c) {
            if (null === c) return "null";
            var d = typeof c;
            return "object" === d && a.prototype.isPrototypeOf(c) ? "array" : "object" === d && b.prototype.isPrototypeOf(c) ? "string" : d
        }, d = function (a) {
            return function (b) {
                return c(b) === a
            }
        };
        return {
            isString: d("string"),
            isObject: d("object"),
            isArray: d("array"),
            isNull: d("null"),
            isBoolean: d("boolean"),
            isUndefined: d("undefined"),
            isFunction: d("function"),
            isNumber: d("number")
        }
    }), g("1c", ["14"], function (a) {
        var b = function () {
            var b = a.keys, c = function (a) {
                var b = [];
                for (var c in a) a.hasOwnProperty(c) && b.push(c);
                return b
            };
            return void 0 === b ? c : b
        }(), c = function (a, c) {
            for (var d = b(a), e = 0, f = d.length; e < f; e++) {
                var g = d[e], h = a[g];
                c(h, g, a)
            }
        }, d = function (a, b) {
            return e(a, function (a, c, d) {
                return {k: c, v: b(a, c, d)}
            })
        }, e = function (a, b) {
            var d = {};
            return c(a, function (c, e) {
                var f = b(c, e, a);
                d[f.k] = f.v
            }), d
        }, f = function (a, b) {
            var d = {}, e = {};
            return c(a, function (a, c) {
                var f = b(a, c) ? d : e;
                f[c] = a
            }), {t: d, f: e}
        }, g = function (a, b) {
            var d = [];
            return c(a, function (a, c) {
                d.push(b(a, c))
            }), d
        }, h = function (a, c) {
            for (var d = b(a), e = 0, f = d.length; e < f; e++) {
                var g = d[e], h = a[g];
                if (c(h, g, a)) return h
            }
        }, i = function (a) {
            return g(a, function (a) {
                return a
            })
        }, j = function (a) {
            return i(a).length
        };
        return {bifilter: f, each: c, map: d, mapToArray: g, tupleMap: e, find: h, keys: b, values: i, size: j}
    }), g("2e", [], function () {
        return {
            ATTRIBUTE: 2,
            CDATA_SECTION: 4,
            COMMENT: 8,
            DOCUMENT: 9,
            DOCUMENT_TYPE: 10,
            DOCUMENT_FRAGMENT: 11,
            ELEMENT: 1,
            TEXT: 3,
            PROCESSING_INSTRUCTION: 7,
            ENTITY_REFERENCE: 5,
            ENTITY: 6,
            NOTATION: 12
        }
    }), g("1d", ["2e"], function (a) {
        var b = function (a) {
            var b = a.dom().nodeName;
            return b.toLowerCase()
        }, c = function (a) {
            return a.dom().nodeType
        }, d = function (a) {
            return a.dom().nodeValue
        }, e = function (a) {
            return function (b) {
                return c(b) === a
            }
        }, f = function (d) {
            return c(d) === a.COMMENT || "#comment" === b(d)
        }, g = e(a.ELEMENT), h = e(a.TEXT), i = e(a.DOCUMENT);
        return {name: b, type: c, value: d, isElement: g, isText: h, isDocument: i, isComment: f}
    }), h("1e", Error), g("1f", [], function () {
        return "undefined" == typeof console && (console = {
            log: function () {
            }
        }), console
    }), g("j", ["1b", "g", "1c", "1d", "1e", "1f"], function (a, b, c, d, e, f) {
        var g = function (b, c, d) {
            if (!(a.isString(d) || a.isBoolean(d) || a.isNumber(d))) throw f.error("Invalid call to Attr.set. Key ", c, ":: Value ", d, ":: Element ", b), new e("Attribute value was not simple");
            b.setAttribute(c, d + "")
        }, h = function (a, b, c) {
            g(a.dom(), b, c)
        }, i = function (a, b) {
            var d = a.dom();
            c.each(b, function (a, b) {
                g(d, b, a)
            })
        }, j = function (a, b) {
            var c = a.dom().getAttribute(b);
            return null === c ? void 0 : c
        }, k = function (a, b) {
            var c = a.dom();
            return !(!c || !c.hasAttribute) && c.hasAttribute(b)
        }, l = function (a, b) {
            a.dom().removeAttribute(b)
        }, m = function (a) {
            var b = a.dom().attributes;
            return void 0 === b || null === b || 0 === b.length
        }, n = function (a) {
            return b.foldl(a.dom().attributes, function (a, b) {
                return a[b.name] = b.value, a
            }, {})
        }, o = function (a, b, c) {
            k(a, c) && !k(b, c) && h(b, c, j(a, c))
        }, p = function (a, c, e) {
            d.isElement(a) && d.isElement(c) && b.each(e, function (b) {
                o(a, c, b)
            })
        };
        return {clone: n, set: h, setAll: i, get: j, has: k, remove: l, hasNone: m, transfer: p}
    }), g("5z", ["g", "j"], function (a, b) {
        var c = function (a, c) {
            var d = b.get(a, c);
            return void 0 === d || "" === d ? [] : d.split(" ")
        }, d = function (a, d, e) {
            var f = c(a, d), g = f.concat([e]);
            b.set(a, d, g.join(" "))
        }, e = function (d, e, f) {
            var g = a.filter(c(d, e), function (a) {
                return a !== f
            });
            g.length > 0 ? b.set(d, e, g.join(" ")) : b.remove(d, e)
        };
        return {read: c, add: d, remove: e}
    }), g("3i", ["g", "5z"], function (a, b) {
        var c = function (a) {
            return void 0 !== a.dom().classList
        }, d = function (a) {
            return b.read(a, "class")
        }, e = function (a, c) {
            return b.add(a, "class", c)
        }, f = function (a, c) {
            return b.remove(a, "class", c)
        }, g = function (b, c) {
            a.contains(d(b), c) ? f(b, c) : e(b, c)
        };
        return {get: d, add: e, remove: f, toggle: g, supports: c}
    }), g("27", ["3h", "j", "3i"], function (a, b, c) {
        var d = function (a, b) {
            c.supports(a) ? a.dom().classList.add(b) : c.add(a, b)
        }, e = function (a) {
            var d = c.supports(a) ? a.dom().classList : c.get(a);
            0 === d.length && b.remove(a, "class")
        }, f = function (a, b) {
            if (c.supports(a)) {
                var d = a.dom().classList;
                d.remove(b)
            } else c.remove(a, b);
            e(a)
        }, g = function (a, b) {
            return c.supports(a) ? a.dom().classList.toggle(b) : c.toggle(a, b)
        }, h = function (b, d) {
            var e = c.supports(b), f = b.dom().classList, g = function () {
                e ? f.remove(d) : c.remove(b, d)
            }, h = function () {
                e ? f.add(d) : c.add(b, d)
            };
            return a(g, h, i(b, d))
        }, i = function (a, b) {
            return c.supports(a) && a.dom().classList.contains(b)
        };
        return {add: d, remove: f, toggle: g, toggler: h, has: i}
    }), h("1g", document), g("k", ["p", "1e", "1f", "1g"], function (a, b, c, d) {
        var e = function (a, b) {
            var e = b || d, f = e.createElement("div");
            if (f.innerHTML = a, !f.hasChildNodes() || f.childNodes.length > 1) throw c.error("HTML does not have a single root node", a), "HTML must have a single root node";
            return h(f.childNodes[0])
        }, f = function (a, b) {
            var c = b || d, e = c.createElement(a);
            return h(e)
        }, g = function (a, b) {
            var c = b || d, e = c.createTextNode(a);
            return h(e)
        }, h = function (c) {
            if (null === c || void 0 === c) throw new b("Node cannot be null or undefined");
            return {dom: a.constant(c)}
        };
        return {fromHtml: e, fromTag: f, fromText: g, fromDom: h}
    }), g("3k", ["g", "1c", "p", "12"], function (a, b, c, d) {
        var e = function (e, f) {
            var g = function () {
                for (var b = new d(arguments.length), f = 0; f < b.length; f++) b[f] = arguments[f];
                if (e.length !== b.length) throw'Wrong number of arguments to struct. Expected "[' + e.length + ']", got ' + b.length + " arguments";
                var g = {};
                return a.each(e, function (a, d) {
                    g[a] = c.constant(b[d])
                }), g
            }, h = function (a, b) {
                for (var d = 0; d < e.length; d++) {
                    var g = f && f[d] || c.tripleEquals, h = e[d];
                    if (!g(a[h](), b[h]())) return !1
                }
                return !0
            }, i = function (a) {
                return b.map(a, function (a) {
                    return a()
                })
            };
            return {nu: g, eq: h, evaluate: i}
        };
        return {product: e}
    }), g("3j", ["3k"], function (a) {
        return function () {
            return a.product(arguments).nu
        }
    }), g("60", ["1b", "g"], function (a, b) {
        var c = function (a) {
            return a.slice(0).sort()
        }, d = function (a, b) {
            throw"All required keys (" + c(a).join(", ") + ") were not specified. Specified keys were: " + c(b).join(", ") + "."
        }, e = function (a) {
            throw"Unsupported keys for object: " + c(a).join(", ")
        }, f = function (c, d) {
            if (!a.isArray(d)) throw"The " + c + " fields must be an array. Was: " + d + ".";
            b.each(d, function (b) {
                if (!a.isString(b)) throw"The value " + b + " in the " + c + " fields was not a string."
            })
        }, g = function (a, b) {
            throw"All values need to be of type: " + b + ". Keys (" + c(a).join(", ") + ") were not."
        }, h = function (a) {
            var d = c(a), e = b.find(d, function (a, b) {
                return b < d.length - 1 && a === d[b + 1]
            });
            if (void 0 !== e && null !== e) throw"The field: " + e + " occurs more than once in the combined fields: [" + d.join(", ") + "]."
        };
        return {sort: c, reqMessage: d, unsuppMessage: e, validateStrArr: f, invalidTypeMessage: g, checkDupes: h}
    }), g("3l", ["g", "1c", "p", "n", "60", "14"], function (a, b, c, d, e, f) {
        return function (g, h) {
            var i = g.concat(h);
            if (0 === i.length) throw"You must specify at least one required or optional field.";
            return e.validateStrArr("required", g), e.validateStrArr("optional", h), e.checkDupes(i), function (j) {
                var k = b.keys(j), l = a.forall(g, function (b) {
                    return a.contains(k, b)
                });
                l || e.reqMessage(g, k);
                var m = a.filter(k, function (b) {
                    return !a.contains(i, b)
                });
                m.length > 0 && e.unsuppMessage(m);
                var n = {};
                return a.each(g, function (a) {
                    n[a] = c.constant(j[a])
                }), a.each(h, function (a) {
                    n[a] = c.constant(f.prototype.hasOwnProperty.call(j, a) ? d.some(j[a]) : d.none())
                }), n
            }
        }
    }), g("2c", ["3j", "3k", "3l"], function (a, b, c) {
        return {immutable: a, immutable2: b, immutableBag: c}
    }), g("3m", [], function () {
        var a = function (a, b) {
            var c = [], d = function (a) {
                return c.push(a), b(a)
            }, e = b(a);
            do e = e.bind(d); while (e.isSome());
            return c
        };
        return {toArray: a}
    }), g("4j", ["p"], function (a) {
        return function (b, c, d) {
            var e = b.isiOS() && /ipad/i.test(d) === !0, f = b.isiOS() && !e,
                g = b.isAndroid() && 3 === b.version.major, h = b.isAndroid() && 4 === b.version.major,
                i = e || g || h && /mobile/i.test(d) === !0, j = b.isiOS() || b.isAndroid(), k = j && !i,
                l = c.isSafari() && b.isiOS() && /safari/i.test(d) === !1;
            return {
                isiPad: a.constant(e),
                isiPhone: a.constant(f),
                isTablet: a.constant(i),
                isPhone: a.constant(k),
                isTouch: a.constant(j),
                isAndroid: b.isAndroid,
                isiOS: b.isiOS,
                isWebView: a.constant(l)
            }
        }
    }), g("4k", [], function () {
        var a = function (a, b, c) {
            return {browser: {current: a, version: b}, os: {current: c}}
        };
        return {create: a}
    }), g("61", [], function () {
        var a = function (a) {
            return function () {
                return a
            }
        }, b = function (b, c, d) {
            for (var e = 0; e < d.length; e++) b["is" + d[e].name] = a(d[e].name === c)
        };
        return {getter: a, attachGetters: b}
    }), g("4l", ["61"], function (a) {
        var b = function (b, c, d) {
            var e = a.attachGetters, f = {};
            return f.current = c, f.version = d, e(f, f.current, b), f
        };
        return {create: b}
    }), h("62", Math), h("63", isFinite), h("64", isNaN), h("65", parseFloat), g("3s", ["62", "63", "64", "65"], function (a, b, c, d) {
        var e = function (a) {
            return function (b, c) {
                var d = typeof c;
                if (d !== a) throw b + " was not a " + a + ". Was: " + c + " (" + d + ")"
            }
        }, f = e("string"), g = function (a, b) {
            f(a, b);
            var c = b.length;
            if (1 !== c) throw a + " was not a single char. Was: " + b
        }, h = e("number"), i = function (b, c) {
            if (h(b, c), c !== a.abs(c)) throw b + " was not an integer. Was: " + c
        }, j = function (a) {
            return !c(d(a)) && b(a)
        }, k = function (a, b) {
            if (i(a, b), b < 0) throw a + " was not a natural number. Was: " + b
        };
        return {vString: f, vChar: g, vInt: i, vNat: k, pNum: j}
    }), g("37", ["3s"], function (a) {
        var b = function (a, b, c) {
            if ("" === b) return !0;
            if (a.length < b.length) return !1;
            var d = a.substr(c, c + b.length);
            return d === b
        }, c = function (a, b) {
            var c = function (a) {
                var b = typeof a;
                return "string" === b || "number" === b
            };
            return a.replace(/\${([^{}]*)}/g, function (a, d) {
                var e = b[d];
                return c(e) ? e : a
            })
        }, d = function (a) {
            var b = function (a, b) {
                for (var c = [], d = 0; d < a.length; d++) c.push(b(a[d]));
                return c
            };
            return function () {
                var c = b(arguments, function (a) {
                    return "string" == typeof a ? a.toLowerCase() : a
                });
                return a.apply(this, c)
            }
        }, e = function (a, c) {
            return b(a, c, 0)
        }, f = d(e), g = function (a, c) {
            return b(a, c, a.length - c.length)
        }, h = d(g), i = function (a, b) {
            return a.substr(0, b)
        }, j = function (a, b) {
            return a.substr(a.length - b, a.length)
        }, k = function (a, b) {
            return function (c, d) {
                return a(c, d) ? b(c, c.length - d.length) : c
            }
        }, l = k(e, j), m = k(g, i), n = function (a, b) {
            return a + b
        }, o = function (a, b) {
            return b + a
        }, p = function (a, b) {
            return function (c, d) {
                return a(c, d) ? c : b(c, d)
            }
        }, q = p(e, o), r = p(g, n), s = function (a) {
            return a.replace(/^\s+|\s+$/g, "")
        }, t = function (a) {
            return a.replace(/^\s+/g, "")
        }, u = function (a) {
            return a.replace(/\s+$/g, "")
        }, v = function (a, b) {
            return a.indexOf(b) != -1
        }, w = d(v), x = function (a) {
            return a.replace(/\"/gm, "&quot;")
        }, y = function (a, b) {
            return a === b
        }, z = d(y), A = function (a) {
            if ("" === a) throw"head on empty string";
            return a.substr(0, 1)
        }, B = function (a) {
            if ("" === a) throw"toe on empty string";
            return a.substr(a.length - 1, a.length)
        }, C = function (a) {
            if ("" === a) throw"tail on empty string";
            return a.substr(1, a.length - 1)
        }, D = function (a) {
            if ("" === a) throw"torso on empty string";
            return a.substr(0, a.length - 1)
        }, E = function (a) {
            return "" === a ? a : A(a).toUpperCase() + C(a)
        }, F = function (b, c) {
            a.vString("str", b), a.vNat("num", c);
            for (var d = "", e = 0; e < c; e++) d += b;
            return d
        }, G = function (b) {
            return function (c, d, e) {
                a.vString("str", c), a.vChar("c", d), a.vNat("width", e);
                var f = c.length;
                return f >= e ? c : b(c, F(d, e - f))
            }
        }, H = G(function (a, b) {
            return b + a
        }), I = G(function (a, b) {
            return a + b
        });
        return {
            supplant: c,
            startsWith: e,
            startsWithIgnoringCase: f,
            endsWith: g,
            endsWithIgnoringCase: h,
            first: i,
            last: j,
            removeLeading: l,
            removeTrailing: m,
            ensureLeading: q,
            ensureTrailing: r,
            trim: s,
            lTrim: t,
            rTrim: u,
            contains: v,
            containsIgnoringCase: w,
            htmlEncodeDoubleQuotes: x,
            equals: y,
            equalsIgnoringCase: z,
            head: A,
            repead: F,
            padLeft: H,
            padRight: I,
            toe: B,
            tail: C,
            torso: D,
            capitalize: E
        }
    }), g("4m", ["37"], function (a) {
        var b = a.contains, c = function (a) {
            return function (c) {
                return b(c, a)
            }
        }, d = function () {
            try {
                var a = new ActiveXObject("ChromeTab.ChromeFrame");
                return !!a
            } catch (b) {
                return !1
            }
        }, e = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, f = function (a) {
            var d = [{
                name: "Spartan", versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], search: function (a) {
                    var c = b(a, "edge/") && b(a, "chrome") && b(a, "safari") && b(a, "applewebkit");
                    return c
                }
            }, {
                name: "ChromeFrame", versionRegexes: [/.*?chromeframe\/([0-9]+)\.([0-9]+).*/, e], search: function (c) {
                    return !!b(c, "chromeframe") && a()
                }
            }, {
                name: "Chrome", versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/, e], search: function (a) {
                    return b(a, "chrome") && !b(a, "chromeframe")
                }
            }, {
                name: "IE",
                versionRegexes: [/.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/],
                search: function (c) {
                    var d = b(c, "msie") || b(c, "trident"), e = b(c, "chromeframe");
                    return e ? d && !a() : d
                }
            }, {
                name: "Opera",
                versionRegexes: [e, /.*?opera\/([0-9]+)\.([0-9]+).*/],
                search: c("opera")
            }, {
                name: "Firefox",
                versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],
                search: c("firefox")
            }, {
                name: "Safari", versionRegexes: [e, /.*?cpu os ([0-9]+)_([0-9]+).*/], search: function (a) {
                    return (b(a, "safari") || b(a, "mobile/")) && b(a, "applewebkit")
                }
            }, {name: "Envjs", versionRegexes: [/.*?envjs\/\ ?([0-9]+)\.([0-9]+).*/], search: c("envjs")}], f = [{
                name: "Windows",
                search: c("win"),
                versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]
            }, {
                name: "iOS",
                search: function (a) {
                    return b(a, "iphone") || b(a, "ipad")
                },
                versionRegexes: [/.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/]
            }, {
                name: "Android",
                search: c("android"),
                versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/]
            }, {name: "OSX", search: c("os x"), versionRegexes: [/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]}, {
                name: "Linux",
                search: c("linux")
            }, {name: "Solaris", search: c("sunos")}, {name: "FreeBSD", search: c("freebsd")}];
            return {browsers: d, oses: f}
        };
        return {create: f, chromeFrameChecker: d}
    }), g("4n", [], function () {
        var a = function (a, b) {
            var c = typeof a;
            if ("boolean" === c) return !!a;
            if ("object" === c) {
                var d = a.minimum;
                return b.major > d.major || b.major === d.major && b.minor >= d.minor
            }
            throw"invalid spec"
        };
        return {meetsSpec: a}
    }), g("66", [], function () {
        var a = function (a, b, c) {
            for (var d = 0; d < a.length; d++) {
                var e = a[d];
                if (c(e, d, a)) return e
            }
            return b
        };
        return {findOneInArrayOr: a}
    }), g("4o", ["66"], function (a) {
        var b = function (b, c) {
            var d = a.findOneInArrayOr, e = String(c).toLowerCase();
            return d(b, {name: void 0}, function (a) {
                return a.search(e)
            })
        };
        return {detect: b}
    }), g("4p", [], function () {
        var a = function (a, b) {
            function c(a, b) {
                for (var c = 0; c < a.length; c++) {
                    var d = a[c];
                    if (d.test(b)) return d
                }
            }

            function d(a, b) {
                var d = c(a, b);
                if (!d) return {major: 0, minor: 0};
                var e = function (a) {
                    return Number(b.replace(d, "$" + a))
                };
                return {major: e(1), minor: e(2)}
            }

            var e = String(b).toLowerCase(), f = a.versionRegexes;
            return f ? d(f, e) : {major: 0, minor: 0}
        };
        return {detectVersion: a}
    }), g("2t", ["4j", "4k", "4l", "4m", "4n", "4o", "4p"], function (a, b, c, d, e, f, g) {
        var h = g.detectVersion, i = c.create, j = e.meetsSpec, k = f.detect, l = function (a, b, c, d) {
            return !!a[b] && (a[b][c] ? j(a[b][c], d) : !!a[b].All)
        }, m = function (a, b) {
            var c = b.browser, d = b.os;
            return l(a, d.current, c.current, c.version)
        }, n = function (b, c) {
            var e = d.create(c), f = e.browsers, g = e.oses, j = k(g, b), m = j.name, n = h(j, b), o = k(f, b),
                p = o.name, q = h(o, b), r = i(g, m, n), s = i(f, p, q), t = a(r, s, b), u = function (a) {
                    return l(a, m, p, q)
                };
            return {browser: s, os: r, deviceType: t, isSupported: u}
        }, o = function () {
            return n(navigator.userAgent, d.chromeFrameChecker)
        };
        return {Platform: b, detect: o, doDetect: n, isSupported: l, isSupportedPlatform: m}
    }), g("72", [], function () {
        return Function("return this;")()
    }), g("68", ["72"], function (a) {
        var b = function (b, c) {
            for (var d = c || a, e = 0; e < b.length && void 0 !== d && null !== d; ++e) d = d[b[e]];
            return d
        }, c = function (a, c) {
            var d = a.split(".");
            return b(d, c)
        };
        return {path: b, resolve: c}
    }), g("3p", ["68"], function (a) {
        var b = function (b, c) {
            return a.resolve(b, c)
        }, c = function (a, c) {
            var d = b(a, c);
            if (void 0 === d) throw a + " not available on this browser";
            return d
        };
        return {getOrDie: c}
    }), g("67", ["3p"], function (a) {
        var b = function () {
            var b = a.getOrDie("Node");
            return b
        }, c = function (a, b, c) {
            return 0 !== (a.compareDocumentPosition(b) & c)
        }, d = function (a, d) {
            return c(a, d, b().DOCUMENT_POSITION_PRECEDING)
        }, e = function (a, d) {
            return c(a, d, b().DOCUMENT_POSITION_CONTAINED_BY)
        };
        return {documentPositionPreceding: d, documentPositionContainedBy: e}
    }), g("2h", ["2e", "g", "n", "k", "1e", "1g"], function (a, b, c, d, e, f) {
        var g = 0, h = 1, i = 2, j = 3, k = function () {
            var a = f.createElement("span");
            return void 0 !== a.matches ? g : void 0 !== a.msMatchesSelector ? h : void 0 !== a.webkitMatchesSelector ? i : void 0 !== a.mozMatchesSelector ? j : -1
        }(), l = a.ELEMENT, m = a.DOCUMENT, n = function (a, b) {
            var c = a.dom();
            if (c.nodeType !== l) return !1;
            if (k === g) return c.matches(b);
            if (k === h) return c.msMatchesSelector(b);
            if (k === i) return c.webkitMatchesSelector(b);
            if (k === j) return c.mozMatchesSelector(b);
            throw new e("Browser lacks native selectors")
        }, o = function (a) {
            return a.nodeType !== l && a.nodeType !== m || 0 === a.childElementCount
        }, p = function (a, c) {
            var e = void 0 === c ? f : c.dom();
            return o(e) ? [] : b.map(e.querySelectorAll(a), d.fromDom)
        }, q = function (a, b) {
            var e = void 0 === b ? f : b.dom();
            return o(e) ? c.none() : c.from(e.querySelector(a)).map(d.fromDom)
        };
        return {all: p, is: n, one: q}
    }), g("3n", ["g", "2t", "67", "p", "2h"], function (a, b, c, d, e) {
        var f = function (a, b) {
            return a.dom() === b.dom()
        }, g = function (a, b) {
            return a.dom().isEqualNode(b.dom())
        }, h = function (b, c) {
            return a.exists(c, d.curry(f, b))
        }, i = function (a, b) {
            var c = a.dom(), d = b.dom();
            return c !== d && c.contains(d)
        }, j = function (a, b) {
            return c.documentPositionContainedBy(a.dom(), b.dom())
        }, k = b.detect().browser, l = k.isIE() ? j : i;
        return {eq: f, isEqualNode: g, member: h, contains: l, is: e.is}
    }), g("3f", ["1b", "g", "p", "n", "2c", "3m", "3n", "k"], function (a, b, c, d, e, f, g, h) {
        var i = function (a) {
            return h.fromDom(a.dom().ownerDocument)
        }, j = function (a) {
            var b = i(a);
            return h.fromDom(b.dom().documentElement)
        }, k = function (a) {
            var b = a.dom(), c = b.ownerDocument.defaultView;
            return h.fromDom(c)
        }, l = function (a) {
            var b = a.dom();
            return d.from(b.parentNode).map(h.fromDom)
        }, m = function (a) {
            return l(a).bind(function (c) {
                var e = u(c), f = b.findIndex(e, function (b) {
                    return g.eq(a, b)
                });
                return f > -1 ? d.some(f) : d.none()
            })
        }, n = function (b, d) {
            for (var e = a.isFunction(d) ? d : c.constant(!1), f = b.dom(), g = []; null !== f.parentNode && void 0 !== f.parentNode;) {
                var i = f.parentNode, j = h.fromDom(i);
                if (g.push(j), e(j) === !0) break;
                f = i
            }
            return g
        }, o = function (a) {
            var c = function (c) {
                return b.filter(c, function (b) {
                    return !g.eq(a, b)
                })
            };
            return l(a).map(u).map(c).getOr([])
        }, p = function (a) {
            var b = a.dom();
            return d.from(b.offsetParent).map(h.fromDom)
        }, q = function (a) {
            var b = a.dom();
            return d.from(b.previousSibling).map(h.fromDom)
        }, r = function (a) {
            var b = a.dom();
            return d.from(b.nextSibling).map(h.fromDom)
        }, s = function (a) {
            return b.reverse(f.toArray(a, q))
        }, t = function (a) {
            return f.toArray(a, r)
        }, u = function (a) {
            var c = a.dom();
            return b.map(c.childNodes, h.fromDom)
        }, v = function (a, b) {
            var c = a.dom().childNodes;
            return d.from(c[b]).map(h.fromDom)
        }, w = function (a) {
            return v(a, 0)
        }, x = function (a) {
            return v(a, a.dom().childNodes.length - 1)
        }, y = e.immutable("element", "offset"), z = function (a, b) {
            var c = u(a);
            return c.length > 0 && b < c.length ? y(c[b], 0) : y(a, b)
        };
        return {
            owner: i,
            defaultView: k,
            documentElement: j,
            parent: l,
            findIndex: m,
            parents: n,
            siblings: o,
            prevSibling: q,
            offsetParent: p,
            prevSiblings: s,
            nextSibling: r,
            nextSiblings: t,
            children: u,
            child: v,
            firstChild: w,
            lastChild: x,
            leaf: z
        }
    }), g("28", ["g", "k", "3f", "1g"], function (a, b, c, d) {
        var e = function (a, e) {
            var f = e || d, g = f.createElement("div");
            return g.innerHTML = a, c.children(b.fromDom(g))
        }, f = function (c, d) {
            return a.map(c, function (a) {
                return b.fromTag(a, d)
            })
        }, g = function (c, d) {
            return a.map(c, function (a) {
                return b.fromText(a, d)
            })
        }, h = function (c) {
            return a.map(c, b.fromDom)
        };
        return {fromHtml: e, fromTags: f, fromText: g, fromDom: h}
    }), g("1x", ["3f"], function (a) {
        var b = function (b, c) {
            var d = a.parent(b);
            d.each(function (a) {
                a.dom().insertBefore(c.dom(), b.dom())
            })
        }, c = function (c, d) {
            var f = a.nextSibling(c);
            f.fold(function () {
                var b = a.parent(c);
                b.each(function (a) {
                    e(a, d)
                })
            }, function (a) {
                b(a, d)
            })
        }, d = function (b, c) {
            var d = a.firstChild(b);
            d.fold(function () {
                e(b, c)
            }, function (a) {
                b.dom().insertBefore(c.dom(), a.dom())
            })
        }, e = function (a, b) {
            a.dom().appendChild(b.dom())
        }, f = function (c, d, f) {
            a.child(c, f).fold(function () {
                e(c, d)
            }, function (a) {
                b(a, d)
            })
        }, g = function (a, c) {
            b(a, c), e(c, a)
        };
        return {before: b, after: c, prepend: d, append: e, appendAt: f, wrap: g}
    }), g("29", ["g", "1x"], function (a, b) {
        var c = function (c, d) {
            a.each(d, function (a) {
                b.before(c, a)
            })
        }, d = function (c, d) {
            a.each(d, function (a, e) {
                var f = 0 === e ? c : d[e - 1];
                b.after(f, a)
            })
        }, e = function (c, d) {
            a.each(d.slice().reverse(), function (a) {
                b.prepend(c, a)
            })
        }, f = function (c, d) {
            a.each(d, function (a) {
                b.append(c, a)
            })
        };
        return {before: c, after: d, prepend: e, append: f}
    }), g("5w", [], function () {
        var a = function (a) {
            var b, c = !1;
            return function () {
                return c || (c = !0, b = a.apply(null, arguments)), b
            }
        };
        return {cached: a}
    }), g("5i", ["5w", "k", "1d", "1g"], function (a, b, c, d) {
        var e = function (a) {
            var b = c.isText(a) ? a.dom().parentNode : a.dom();
            return void 0 !== b && null !== b && b.ownerDocument.body.contains(b)
        }, f = a.cached(function () {
            return g(b.fromDom(d))
        }), g = function (a) {
            var c = a.dom().body;
            if (null === c || void 0 === c) throw"Body is not available yet";
            return b.fromDom(c)
        };
        return {body: f, getBody: g, inBody: e}
    }), g("3o", ["g", "5i", "3f"], function (a, b, c) {
        var d = function (a) {
            return h(b.body(), a)
        }, e = function (b, d, e) {
            return a.filter(c.parents(b, e), d)
        }, f = function (b, d) {
            return a.filter(c.siblings(b), d)
        }, g = function (b, d) {
            return a.filter(c.children(b), d)
        }, h = function (b, d) {
            var e = [];
            return a.each(c.children(b), function (a) {
                d(a) && (e = e.concat([a])), e = e.concat(h(a, d))
            }), e
        };
        return {all: d, ancestors: e, siblings: f, children: g, descendants: h}
    }), g("2a", ["3o", "2h"], function (a, b) {
        var c = function (a) {
            return b.all(a)
        }, d = function (c, d, e) {
            return a.ancestors(c, function (a) {
                return b.is(a, d)
            }, e)
        }, e = function (c, d) {
            return a.siblings(c, function (a) {
                return b.is(a, d)
            })
        }, f = function (c, d) {
            return a.children(c, function (a) {
                return b.is(a, d)
            })
        }, g = function (a, c) {
            return b.all(c, a)
        };
        return {all: c, ancestors: d, siblings: e, children: f, descendants: g}
    }), g("16", ["g", "26", "27", "k", "28", "29", "2a"], function (a, b, c, d, e, f, g) {
        var h = function (a) {
            c.remove(a, b.uploadInProgress())
        }, i = function (c) {
            for (var i = 0; i < c.undoManager.data.length; i++) {
                var j = c.undoManager.data[i].content, k = d.fromTag("div");
                f.append(k, e.fromHtml(j));
                var l = g.descendants(k, "." + b.uploadInProgress());
                a.each(l, h), c.undoManager.data[i].content = k.dom().innerHTML
            }
        }, j = function (a, b, c) {
            for (var d = 0; d < a.undoManager.data.length; d++) a.undoManager.data[d].content = a.undoManager.data[d].content.split(b.objurl()).join(c.location)
        };
        return {unwrapHistory: i, resrcHistory: j}
    }), g("2b", ["3p"], function (a) {
        var b = function () {
            return a.getOrDie("URL")
        }, c = function (a) {
            return b().createObjectURL(a)
        }, d = function (a) {
            b().revokeObjectURL(a)
        };
        return {createObjectURL: c, revokeObjectURL: d}
    }), g("17", ["1c", "2b", "n", "2c"], function (a, b, c, d) {
        var e = d.immutable("id", "blob", "objurl", "data");
        return function () {
            var d = {}, f = function (a, b, c, f) {
                var g = e(a, b, c, f);
                return d[a] = g, g
            }, g = function (a) {
                return c.from(d[a])
            }, h = function (a) {
                b.revokeObjectURL(a.objurl())
            }, i = function (b) {
                return c.from(a.find(d, function (a) {
                    return a.data().result === b
                }))
            }, j = function (a) {
                var b = d[a];
                delete d[a], void 0 !== b && h(b)
            }, k = function () {
                a.each(d, h), d = {}
            };
            return {add: f, get: g, remove: j, lookupByData: i, destroy: k}
        }
    }), g("21", ["g", "2c"], function (a, b) {
        return function (c) {
            var d = b.immutable.apply(null, c), e = [], f = function (a) {
                if (void 0 === a) throw"Event bind error: undefined handler";
                e.push(a)
            }, g = function (b) {
                e = a.filter(e, function (a) {
                    return a !== b
                })
            }, h = function () {
                var b = d.apply(null, arguments);
                a.each(e, function (a) {
                    a(b)
                })
            };
            return {bind: f, unbind: g, trigger: h}
        }
    }), g("22", ["1c"], function (a) {
        var b = function (b) {
            var c = a.map(b, function (a) {
                return {bind: a.bind, unbind: a.unbind}
            }), d = a.map(b, function (a) {
                return a.trigger
            });
            return {registry: c, trigger: d}
        };
        return {create: b}
    }), g("18", ["g", "2d", "26", "21", "22", "j", "2a"], function (a, b, c, d, e, f, g) {
        var h = "data-" + b.resolve("image-upload"), i = function (a, b) {
            return g.descendants(a, "img[" + h + '="' + b + '"]')
        }, j = function (a) {
            return g.descendants(a, "img:not([" + h + "])[" + c.blobId() + "]")
        };
        return function () {
            var b = [], c = [], g = e.create({complete: d(["response"])}), k = function (a, c) {
                f.set(a, h, c), b.push(c)
            }, l = function (c) {
                b = a.filter(b, function (a, b) {
                    return a !== c
                }), p() === !1 && o()
            }, m = function (a, b) {
                c.push({success: a, element: b.dom()})
            }, n = function (b, c, d) {
                a.each(c, function (a) {
                    f.remove(a, h), m(d, a)
                }), l(b)
            }, o = function () {
                g.trigger.complete(c), c = []
            }, p = function () {
                return b.length > 0
            }, q = function (c) {
                return a.contains(b, c)
            };
            return {
                findById: i, findAll: j, register: k,
                report: n, inProgress: p, isActive: q, events: g.registry
            }
        }
    }), g("1l", ["1b", "12"], function (a, b) {
        var c = function (a, b) {
            return b
        }, d = function (b, c) {
            var d = a.isObject(b) && a.isObject(c);
            return d ? f(b, c) : c
        }, e = function (a) {
            return function () {
                for (var c = new b(arguments.length), d = 0; d < c.length; d++) c[d] = arguments[d];
                if (0 === c.length) throw"Can't merge zero objects";
                for (var e = {}, f = 0; f < c.length; f++) {
                    var g = c[f];
                    for (var h in g) g.hasOwnProperty(h) && (e[h] = a(e[h], g[h]))
                }
                return e
            }
        }, f = e(d), g = e(c);
        return {deepMerge: f, merge: g}
    }), g("1m", ["1b", "g", "1c", "12"], function (a, b, c, d) {
        var e = function (e) {
            if (!a.isArray(e)) throw"cases must be an array";
            if (0 === e.length) throw"there must be at least one case";
            var f = {};
            return b.each(e, function (b, g) {
                var h = c.keys(b);
                if (1 !== h.length) throw"one and only one name per case";
                var i = h[0], j = b[i];
                if (void 0 !== f[i]) throw"duplicate key detected:" + i;
                if ("cata" === i) throw"cannot have a case named cata (sorry)";
                if (!a.isArray(j)) throw"case arguments must be an array";
                f[i] = function () {
                    var a = arguments.length;
                    if (a !== j.length) throw"Wrong number of arguments to case " + i + ". Expected " + j.length + " (" + j + "), got " + a;
                    for (var b = new d(a), c = 0; c < b.length; c++) b[c] = arguments[c];
                    return {
                        fold: function () {
                            if (arguments.length !== e.length) throw"Wrong number of arguments to fold. Expected " + e.length + ", got " + arguments.length;
                            var a = arguments[g];
                            return a.apply(null, b)
                        }
                    }
                }
            }), f
        };
        return {generate: e}
    }), g("h", ["1l", "1m"], function (a, b) {
        var c = b.generate([{blob: ["id", "blob", "objurl", "data"]}, {url: ["id", "url", "raw"]}]),
            d = function (a, b, c) {
                return a.fold(b, c)
            };
        return a.merge(c, {cata: d})
    }), g("2f", ["p", "n"], function (a, b) {
        var c = function (a) {
            return e(function (b, c) {
                return c(a)
            })
        }, d = function (a) {
            return e(function (b, c) {
                return b(a)
            })
        }, e = function (e) {
            var f = function (b) {
                return e(a.constant(!1), function (a) {
                    return a === b
                })
            }, g = function () {
                return e(a.constant(!1), a.constant(!0))
            }, h = a.not(g), i = function (b) {
                return e(a.constant(b), a.identity)
            }, j = function (b) {
                return e(b, a.identity)
            }, k = function () {
                return e(function (b) {
                    a.die(b)()
                }, a.identity)
            }, l = function (b) {
                return e(a.constant(b), c)
            }, m = function (a) {
                return e(a, c)
            }, n = function (a) {
                return p(function (b) {
                    return c(a(b))
                })
            }, o = n, p = function (a) {
                return e(d, a)
            }, q = function (b) {
                return e(a.constant(!1), b)
            }, r = function (b) {
                return e(a.constant(!0), b)
            }, s = function () {
                return e(b.none, b.some)
            };
            return {
                is: f,
                isValue: g,
                isError: h,
                getOr: i,
                getOrThunk: j,
                getOrDie: k,
                or: l,
                orThunk: m,
                fold: e,
                map: n,
                each: o,
                bind: p,
                exists: q,
                forall: r,
                toOption: s
            }
        };
        return {value: c, error: d}
    }), g("3q", ["g", "27", "3i", "12"], function (a, b, c, d) {
        var e = function (c, d) {
            a.each(d, function (a) {
                b.add(c, a)
            })
        }, f = function (c, d) {
            a.each(d, function (a) {
                b.remove(c, a)
            })
        }, g = function (c, d) {
            a.each(d, function (a) {
                b.toggle(c, a)
            })
        }, h = function (c, d) {
            return a.forall(d, function (a) {
                return b.has(c, a)
            })
        }, i = function (c, d) {
            return a.exists(d, function (a) {
                return b.has(c, a)
            })
        }, j = function (a) {
            for (var b = a.dom().classList, c = new d(b.length), e = 0; e < b.length; e++) c[e] = b.item(e);
            return c
        }, k = function (a) {
            return c.supports(a) ? j(a) : c.get(a)
        };
        return {add: e, remove: f, toggle: g, hasAll: h, hasAny: i, get: k}
    }), g("2g", ["27", "3q"], function (a, b) {
        var c = function (b) {
            return function (c) {
                a.add(c, b)
            }
        }, d = function (b) {
            return function (c) {
                a.remove(c, b)
            }
        }, e = function (a) {
            return function (c) {
                b.remove(c, a)
            }
        }, f = function (b) {
            return function (c) {
                return a.has(c, b)
            }
        };
        return {addClass: c, removeClass: d, removeClasses: e, hasClass: f}
    }), g("2i", ["1b", "n"], function (a, b) {
        return function (c, d, e, f, g) {
            return c(e, f) ? b.some(e) : a.isFunction(g) && g(e) ? b.none() : d(e, f, g)
        }
    }), g("20", ["n", "2a", "2h", "2i"], function (a, b, c, d) {
        var e = function (c) {
            return a.from(b.all(c)[0])
        }, f = function (c, d, e) {
            return a.from(b.ancestors(c, d, e)[0])
        }, g = function (c, d) {
            return a.from(b.siblings(c, d)[0])
        }, h = function (c, d) {
            return a.from(b.children(c, d)[0])
        }, i = function (c, d) {
            return a.from(b.descendants(c, d)[0])
        }, j = function (a, b, e) {
            return d(c.is, f, a, b, e)
        };
        return {first: e, ancestor: f, sibling: g, child: h, descendant: i, closest: j}
    }), g("19", ["g", "h", "p", "n", "2f", "26", "1m", "2c", "j", "27", "2g", "20", "1f"], function (a, b, c, d, e, f, g, h, i, j, k, l, m) {
        var n = h.immutable("image", "blobInfo"),
            o = g.generate([{failure: ["error"]}, {success: ["result", "images", "blob"]}]), p = function (a, b, c) {
                var e = a.isActive(b);
                return a.register(c, b), j.add(c, f.uploadInProgress()), e ? d.none() : d.some(b)
            }, q = function (b, c, d, e) {
                return a.each(c, function (a) {
                    i.set(a, "src", e.location), i.remove(a, f.blobId())
                }), u(b, d)
            }, r = function (b, d, e, g, h, i, j) {
                var l = function () {
                    m.error("Internal error with blob cache", h), j(o.failure({status: c.constant(666)}))
                };
                b.upload(i, h, function (b) {
                    var c = d.findById(g, h);
                    a.each(c, k.removeClass(f.uploadInProgress())), b.fold(function (a) {
                        j(o.failure(a))
                    }, function (a) {
                        q(e, c, h, a).fold(l, function (b) {
                            j(o.success(a, c, b))
                        })
                    }), d.report(h, c, b.isValue())
                })
            }, s = function (a, b, c, d, e, g) {
                var h = a.lookupByData(e.result).getOrThunk(function () {
                    return a.add(b, c, d, e)
                });
                return i.set(g, f.blobId(), h.id()), n(g, h)
            }, t = function (a, b) {
                var c = i.get(b, f.blobId());
                return a.get(c).fold(function () {
                    return e.error(c)
                }, function (a) {
                    return e.value(n(b, a))
                })
            }, u = function (a, b) {
                return a.get(b).fold(function () {
                    return e.error("Internal error with blob cache")
                }, function (c) {
                    return a.remove(b), e.value(c)
                })
            }, v = function (d, f, g) {
                return a.bind(g, function (a) {
                    return b.cata(a, function (a, b, c, g) {
                        var h = l.descendant(f, 'img[src="' + c + '"]');
                        return h.fold(function () {
                            return [e.error("Image that was just inserted could not be found: " + c)]
                        }, function (f) {
                            return [e.value(s(d, a, b, c, g, f))]
                        })
                    }, c.constant([]))
                })
            }, w = function (b, c, d) {
                var e = b.findAll(d);
                return b.inProgress() ? [] : a.map(e, function (a) {
                    return t(c, a)
                })
            };
        return {prepareForUpload: p, handleUpload: r, registerAssets: v, registerBlob: s, findBlobs: w}
    }), g("3r", ["3p"], function (a) {
        return function () {
            var b = a.getOrDie("FormData");
            return new b
        }
    }), g("2j", ["1b", "g", "3r", "2c", "37"], function (a, b, c, d, e) {
        var f = d.immutable("message", "status", "contents"), g = ["jpg", "png", "gif", "jpeg"], h = function (c, d) {
            if (a.isString(c.type) && e.startsWith(c.type, "image/")) {
                var f = c.type.substr("image/".length);
                return b.contains(g, f) ? d + "." + f : d
            }
            return d
        }, i = function (b, c) {
            var d = a.isString(b.name) && !e.endsWith(b.name, ".tmp");
            return d ? b.name : h(b, c)
        }, j = function (a, b, d) {
            var e = c();
            return e.append(a, b, d), {data: e, contentType: !1, processData: !1}
        };
        return {failureObject: f, getFilename: i, buildExtra: j}
    }), g("1u", ["12"], function (a) {
        var b = function (b) {
            return function () {
                var c = a.prototype.slice.call(arguments), d = this;
                setTimeout(function () {
                    b.apply(d, c)
                }, 0)
            }
        };
        return {bounce: b}
    }), g("1v", [], function () {
        return function (a, b) {
            var c = function (c) {
                return a(function (a) {
                    b(function (b) {
                        var d = c(b);
                        a(d)
                    })
                })
            }, d = function (c) {
                return a(function (a) {
                    b(function (b) {
                        c(b).get(a)
                    })
                })
            }, e = function (c) {
                return a(function (a) {
                    b(function (b) {
                        c.get(a)
                    })
                })
            };
            return {get: b, map: c, bind: d, anonBind: e}
        }
    }), g("1w", ["g"], function (a) {
        return function (b) {
            var c = function (a) {
                return b(function (b) {
                    b(a)
                })
            }, d = function (c) {
                return b(function (b) {
                    var d = [], e = 0, f = function (a) {
                        return function (f) {
                            d[a] = f, e++, e >= c.length && b(d)
                        }
                    };
                    0 === c.length ? b([]) : a.each(c, function (a, b) {
                        a.get(f(b))
                    })
                })
            }, e = function (b, c) {
                return d(a.map(b, c))
            }, f = function (a, c, d) {
                return b(function (b) {
                    var e = !1, f = !1, g = void 0, h = void 0, i = function () {
                        if (e && f) {
                            var a = d(g, h);
                            b(a)
                        }
                    };
                    a.get(function (a) {
                        g = a, e = !0, i()
                    }), c.get(function (a) {
                        h = a, f = !0, i()
                    })
                })
            }, g = function (a, b) {
                return function (c) {
                    return b(c).bind(a)
                }
            };
            return {nu: b, pure: c, par: d, mapM: e, lift2: f, compose: g}
        }
    }), g("o", ["1u", "1v", "1w"], function (a, b, c) {
        var d = function (c) {
            var e = function (b) {
                c(a.bounce(b))
            };
            return b(d, e)
        };
        return c(d)
    }), g("2u", ["3p"], function (a) {
        return function () {
            var b = a.getOrDie("FileReader");
            return new b
        }
    }), g("73", ["o", "2u"], function (a, b) {
        return function (c) {
            return a.nu(function (a) {
                var d = b();
                d.onload = function (b) {
                    var c = b.target;
                    a(c.result)
                }, d.readAsText(c)
            })
        }
    }), g("74", ["3p"], function (a) {
        return function () {
            var b = a.getOrDie("XMLHttpRequest");
            return new b
        }
    }), g("69", ["1b", "1c", "1l", "73", "o", "74", "n", "2f", "37", "1f"], function (a, b, c, d, e, f, g, h, i, j) {
        var k = {
            "*": "*/*",
            text: "text/plain",
            html: "text/html",
            xml: "application/xml, text/xml",
            json: "application/json, text/javascript"
        }, l = function (l, m, n, o) {
            var p = {url: l, contentType: "application/json", processData: !1, type: "GET"}, q = c.merge(p, o), r = f();
            r.open(q.type.toUpperCase(), q.url, !0), "blob" === q.responseType && (r.responseType = q.responseType), a.isString(q.contentType) && r.setRequestHeader("Content-Type", q.contentType);
            var s = q.dataType, t = a.isString(s) && "*" !== s ? k[s] + ", " + k["*"] + "; q=0.01" : k["*"];
            r.setRequestHeader("Accept", t), void 0 !== q.xhrFields && q.xhrFields.withCredentials === !0 && (r.withCredentials = !0), a.isObject(q.headers) && b.each(q.headers, function (b, c) {
                a.isString(c) || a.isString(b) ? r.setRequestHeader(c, b) : j.error("Request header data was not a string: ", c, " -> ", b)
            });
            var u = function (a, b, c) {
                m(a)
            }, v = function () {
                return "blob" === q.responseType ? g.from(r.response).map(d).getOr(e.pure("no response content")) : e.pure(r.responseText)
            }, w = function () {
                v().get(function (a) {
                    0 === r.status ? n("Unknown HTTP error (possible cross-domain request)", r.status, a) : n('Could not load url "' + l + '": ' + r.statusText, r.status, a)
                })
            }, x = function () {
                try {
                    return h.value(JSON.parse(r.response))
                } catch (a) {
                    return h.error({
                        status: r.status,
                        statusText: "Response was not JSON",
                        responseText: r.responseText
                    })
                }
            }, y = function () {
                var a = "json" === s ? x(r) : h.value(r.response);
                a.fold(w, function (a) {
                    u(a, r.statusText, r)
                })
            }, z = function () {
                0 === r.status ? i.startsWith(q.url, "file:") ? y() : w() : r.status < 100 || r.status >= 400 ? w() : y()
            };
            r.onerror = w, r.onload = z, void 0 === q.data ? r.send() : r.send(q.data)
        };
        return {ajax: l}
    }), g("3u", ["3p"], function (a) {
        var b = function () {
            return a.getOrDie("JSON")
        }, c = function (a) {
            return b().parse(a)
        }, d = function (a, c, d) {
            return b().stringify(a, c, d)
        };
        return {parse: c, stringify: d}
    }), g("3t", ["1l", "69", "3u"], function (a, b, c) {
        var d = function (c, d, e, f) {
            b.ajax(c, d, e, a.merge({dataType: "text", type: "GET"}, f))
        }, e = function (d, e, f, g, h) {
            b.ajax(d, f, g, a.merge({dataType: "text", data: c.stringify(e), type: "POST"}, h))
        };
        return {get: d, post: e}
    }), g("6a", [], function () {
        var a = function (a) {
            var b = "";
            return "" !== a.protocol && (b += a.protocol, b += ":"), "" !== a.authority && (b += "//", b += a.authority), b += a.path, "" !== a.query && (b += "?", b += a.query), "" !== a.anchor && (b += "#", b += a.anchor), b
        };
        return {recompose: a}
    }), g("75", ["1l"], function (a) {
        var b = {
            strictMode: !1,
            key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"],
            q: {name: "queryKey", parser: /(?:^|&)([^&=]*)=?([^&]*)/g},
            parser: {
                strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@\/]*)(?::([^:@\/]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
                loose: /^(?:(?![^:@\/]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*)(?::([^:@\/]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
            }
        }, c = function (a, b) {
            for (var c = b, d = c.parser[c.strictMode ? "strict" : "loose"].exec(a), e = {}, f = 14; f--;) e[c.key[f]] = d[f] || "";
            return e[c.q.name] = {}, e[c.key[12]].replace(c.q.parser, function (a, b, d) {
                b && (e[c.q.name][b] = d)
            }), e
        }, d = function (d, e) {
            var f = a.merge(b, e);
            return c(d, f)
        };
        return {parse: d}
    }), g("76", ["37"], function (a) {
        var b = function (b) {
            return a.removeTrailing(b, d(b))
        }, c = function (a) {
            return a.match(/(^\/?.*?)(\/|$)/)[1]
        }, d = function (a) {
            return a.substring(a.lastIndexOf("/"))
        }, e = function (d) {
            for (var e = d, f = ""; "" !== e;) if (a.startsWith(e, "../")) e = a.removeLeading(e, "../"); else if (a.startsWith(e, "./")) e = a.removeLeading(e, "./"); else if (a.startsWith(e, "/./")) e = "/" + a.removeLeading(e, "/./"); else if ("/." === e) e = "/"; else if (a.startsWith(e, "/../")) e = "/" + a.removeLeading(e, "/../"), f = b(f); else if ("/.." === e) e = "/", f = b(f); else if ("." === e || ".." === e) e = ""; else {
                var g = c(e);
                e = a.removeLeading(e, g), f += g
            }
            return f
        };
        return {remove: e}
    }), g("77", ["37"], function (a) {
        var b = function (b, c, d) {
            if ("" !== d && "" === b) return "/" + c;
            var e = b.substring(b.lastIndexOf("/") + 1);
            return a.removeTrailing(b, e) + c
        };
        return {merge: b}
    }), g("6b", ["37", "75", "76", "77"], function (a, b, c, d) {
        var e = function (e, f) {
            var g = {strictMode: !0}, h = b.parse(e, g), i = b.parse(f, g), j = {};
            return "" !== i.protocol ? (j.protocol = i.protocol, j.authority = i.authority, j.path = c.remove(i.path), j.query = i.query) : ("" !== i.authority ? (j.authority = i.authority, j.path = c.remove(i.path), j.query = i.query) : ("" === i.path ? (j.path = h.path, "" !== i.query ? j.query = i.query : j.query = h.query) : (a.startsWith(i.path, "/") ? j.path = c.remove(i.path) : (j.path = d.merge(h.path, i.path, e.authority), j.path = c.remove(j.path)), j.query = i.query), j.authority = h.authority), j.protocol = h.protocol), j.anchor = i.anchor, j
        };
        return {transform: e}
    }), g("3v", ["6a", "6b"], function (a, b) {
        var c = function (c, d) {
            var e = b.transform(c, d);
            return a.recompose(e)
        };
        return {resolve: c}
    }), g("2k", ["1b", "1l", "3t", "3u", "2f", "2j", "37", "3v"], function (a, b, c, d, e, f, g, h) {
        return function (i) {
            var j = function () {
                var a = i.url, b = a.lastIndexOf("/"), c = b > 0 ? a.substr(0, b) : a,
                    d = void 0 === i.basePath ? c : i.basePath;
                return g.endsWith(d, "/") ? d : d + "/"
            }, k = j(), l = function (a, b) {
                var c = a.split(/\s+/), d = 1 === c.length && "" !== c[0] ? c[0] : b;
                return h.resolve(k, d)
            }, m = function (g, h, j) {
                var k = g.blob(), m = function (a, b, c) {
                        j(e.error(f.failureObject(a, b, c)))
                    }, n = f.getFilename(k, h), o = i.credentials !== !0 ? {} : {xhrFields: {withCredentials: !0}},
                    p = b.merge(o, f.buildExtra("image", k, n)), q = function (b) {
                        var c;
                        try {
                            var f = d.parse(b);
                            if (!a.isString(f.location)) return void m("JSON response did not contain a string location", 500, b);
                            c = f.location
                        } catch (g) {
                            c = b
                        }
                        var h = l(c, n);
                        j(e.value({location: h}))
                    };
                c.post(i.url, {}, q, m, p)
            };
            return {upload: m}
        }
    }), h("x", setTimeout), g("2l", ["1b", "2f", "2j", "2c", "1f", "x"], function (a, b, c, d, e, f) {
        var g = d.immutable("id", "filename", "blob", "base64");
        return function (d) {
            var h = function (h, i, j) {
                var k = function (a) {
                    j(b.error(a))
                }, l = function (c) {
                    a.isString(c) ? j(b.value({location: c})) : (e.error("Image upload result was not a string"), k(""))
                }, m = c.getFilename(h.blob(), i), n = g(i, m, h.blob(), h.data().result);
                f(function () {
                    d(n, l, k)
                }, 0)
            };
            return {upload: h}
        }
    }), g("1a", ["2j", "2k", "2l"], function (a, b, c) {
        var d = function (a) {
            return b(a)
        }, e = function (a) {
            return c(a)
        }, f = function (b, c, d) {
            return a.failureObject(b, c, d)
        }, g = function (b, c) {
            return a.getFilename(b, c)
        }, h = function (b, c, d) {
            return a.buildExtra(b, c, d)
        };
        return {direct: d, custom: e, failureObject: f, getFilename: g, buildExtra: h}
    }),g("b", ["g", "p", "n", "c", "15", "16", "17", "18", "19", "1a", "j", "k"], function (a, b, c, d, e, f, g, h, i, j, k, l) {
        var m = function (d, m) {
            var n = g(), o = h(), p = (e(), e(d, m.url)), q = j.direct(m), r = function () {
                return l.fromDom(d.getBody())
            }, s = function (b, c, e) {
                a.each(c, function (a) {
                    k.set(a, "data-mce-src", b.location)
                }), f.resrcHistory(d, e, b)
            };
            o.events.complete.bind(function (a) {
                f.unwrapHistory(d)
            });
            var t = function (a, b, c) {
                i.handleUpload(q, o, n, r(), a, b, function (a) {
                    a.fold(function (a) {
                        c(a)
                    }, s)
                })
            }, u = function (a, b) {
                i.prepareForUpload(o, a.blobInfo().id(), a.image()).each(function (c) {
                    t(c, a.blobInfo(), b)
                })
            }, v = function (b) {
                var c = p.instance(), d = i.registerAssets(n, r(), b);
                a.each(d, function (a) {
                    a.fold(function (a) {
                        console.error(a)
                    }, function (a) {
                        u(a, c)
                    })
                })
            }, w = function () {
                var b = p.instance(), d = i.findBlobs(o, n, r());
                a.each(d, function (a) {
                    a.fold(function (a) {
                        o.report(a, c.none(), !1)
                    }, function (a) {
                        u(a, b)
                    })
                })
            }, x = function (a) {
                w(), v(a)
            }, y = function (a, b, c, d) {
                return c
            };
            return {uploadImages: x, prepareImages: b.noop, getLocalURL: y}
        }, n = function (a) {
            var c = d(a);
            return {uploadImages: b.noop, prepareImages: c.prepareImages, getLocalURL: c.getLocalURL}
        };
        return function (a, b) {
            return b ? m(a, b) : n(a)
        }
    }),g("3", ["b", "c"], function (a, b) {
        return function (c) {
            var d = !c.uploadImages && c.settings.images_upload_url ? {
                url: c.settings.images_upload_url,
                basePath: c.settings.images_upload_base_path,
                credentials: c.settings.images_upload_credentials
            } : null;
            return c.uploadImages ? b(c) : a(c, d)
        }
    }),g("1h", [], function () {
        var a = function (a, b) {
            return function () {
                return a.apply(b, arguments)
            }
        }, b = function (a) {
            return a.ownerDocument.defaultView ? a.ownerDocument.defaultView.getComputedStyle(a, null) : a.currentStyle || {}
        }, c = function (a) {
            "undefined" != typeof console && console.log && console.log(a)
        }, d = function (a) {
            var b = Array.prototype.slice.call(a).reverse();
            return function (a) {
                for (var c = a, d = 0; d < b.length; d++) {
                    var e = b[d];
                    c = e(c)
                }
                return c
            }
        }, e = function (a) {
            return tinymce.each(Array.prototype.slice.call(arguments, 1), function (b) {
                for (var c in b) a[c] = b[c]
            }), a
        };
        return {
            each: tinymce.each,
            trim: tinymce.trim,
            bind: a,
            extend: e,
            ephoxGetComputedStyle: b,
            log: c,
            compose: d
        }
    }),g("e", ["1h"], function (a) {
        var b = (tinymce.each, function (b, c, d, e) {
            var f, g, h, i, j, k = b.selection, l = b.dom, m = b.getBody();
            if (j = d.isText(), d.reset(), e.clipboardData && e.clipboardData.getData("text/html")) {
                e.preventDefault();
                var n = e.clipboardData.getData("text/html"), o = n.match(/<html[\s\S]+<\/html>/i),
                    p = null === o ? n : o[0];
                return c(p)
            }
            if (!l.get("_mcePaste")) {
                if (f = l.add(m, "div", {
                    id: "_mcePaste",
                    "class": "mcePaste"
                }, '\ufeff<br _mce_bogus="1">'), i = m != b.getDoc().body ? l.getPos(b.selection.getStart(), m).y : m.scrollTop, l.setStyles(f, {
                    position: "absolute",
                    left: -1e4,
                    top: i,
                    width: 1,
                    height: 1,
                    overflow: "hidden"
                }), tinymce.isIE) return h = l.doc.body.createTextRange(), h.moveToElementText(f), h.execCommand("Paste"), l.remove(f), "\ufeff" === f.innerHTML ? (b.execCommand("mcePasteWord"), void e.preventDefault()) : (c(j ? f.innerText : f.innerHTML), tinymce.dom.Event.cancel(e));
                var q = function (a) {
                    a.preventDefault()
                };
                l.bind(b.getDoc(), "mousedown", q), l.bind(b.getDoc(), "keydown", q), tinymce.isGecko && (h = b.selection.getRng(!0), h.startContainer == h.endContainer && 3 == h.startContainer.nodeType && (nodes = l.select("p,h1,h2,h3,h4,h5,h6,pre", f), 1 == nodes.length && l.remove(nodes.reverse(), !0))), g = b.selection.getRng(), f = f.firstChild, h = b.getDoc().createRange(), h.setStart(f, 0), h.setEnd(f, 1), k.setRng(h), window.setTimeout(function () {
                    var d = "", e = l.select("div.mcePaste");
                    a.each(e, function (b) {
                        var c = b.firstChild;
                        c && "DIV" == c.nodeName && c.style.marginTop && c.style.backgroundColor && l.remove(c, 1), a.each(l.select("div.mcePaste", b), function (a) {
                            l.remove(a, 1)
                        }), a.each(l.select("span.Apple-style-span", b), function (a) {
                            l.remove(a, 1)
                        }), a.each(l.select("br[_mce_bogus]", b), function (a) {
                            l.remove(a)
                        }), d += b.innerHTML
                    }), a.each(e, function (a) {
                        l.remove(a)
                    }), g && k.setRng(g), c(d), l.unbind(b.getDoc(), "mousedown", q), l.unbind(b.getDoc(), "keydown", q)
                }, 0)
            }
        }), c = function (a, c, d) {
            return function (e) {
                b(a, c, d, e)
            }
        }, d = function (a, c, d) {
            return function (e) {
                (tinymce.isOpera || navigator.userAgent.indexOf("Firefox/2") > 0) && ((tinymce.isMac ? e.metaKey : e.ctrlKey) && 86 == e.keyCode || e.shiftKey && 45 == e.keyCode) && b(a, c, d, e)
            }
        };
        return {getOnPasteFunction: c, getOnKeyDownFunction: d}
    }),g("1i", [], function () {
        var a = function (a, b) {
            var c, d = b.getDoc(), e = "ephoxInsertMarker", f = b.selection, g = b.dom;
            f.setContent('<span id="' + e + '">&nbsp;</span>'), c = g.get(e);
            for (var h = d.createDocumentFragment(); a.firstChild && !g.isBlock(a.firstChild);) h.appendChild(a.firstChild);
            for (var i = d.createDocumentFragment(); a.lastChild && !g.isBlock(a.lastChild);) i.appendChild(a.lastChild);
            if (c.parentNode.insertBefore(h, c), g.insertAfter(i, c), a.firstChild) {
                if (g.isBlock(a.firstChild)) {
                    for (; !g.isBlock(c.parentNode) && c.parentNode !== g.getRoot();) c = g.split(c.parentNode, c);
                    g.is(c.parentNode, "td,th") || c.parentNode === g.getRoot() || (c = g.split(c.parentNode, c))
                }
                g.replace(a, c)
            } else g.remove(c)
        };
        return {insert: a}
    }),g("1j", ["1h"], function (a) {
        var b = {strip_class_attributes: "all", retain_style_properties: "none"},
            c = {strip_class_attributes: "none", retain_style_properties: "valid"}, d = function (a, d) {
                if (a && "string" != typeof a) return a;
                switch (a) {
                    case"clean":
                        return b;
                    case"merge":
                        return c;
                    default:
                        return d
                }
            }, e = function (b, c, e) {
                var f = d(b, c);
                return f = a.extend(f, {base_64_images: e})
            }, f = function (a, d, f) {
                var g = e(a, b, f), h = e(d, c, f), i = h, j = function (a) {
                    i = a ? g : h
                }, k = function (a) {
                    return i[a]
                };
                return {setWordContent: j, get: k}
            };
        return {create: f}
    }),g("6c", ["1h"], function (a) {
        var b = function (a) {
            return a.specified !== !1 || "name" === a.nodeName && "" !== a.value
        }, c = function (a, b) {
            return a && b ? function (c, d) {
                return b(c, a(c, d))
            } : a || b
        }, d = function (d) {
            var e, f, g = 0, h = function () {
                return e
            }, i = function () {
                return f()
            };
            f = function () {
                return e = {}, g = 0, a.each(d.attributes, function (a) {
                    var c = a.nodeName, d = a.value;
                    b(a) && null !== d && void 0 !== d && (e[c] = d, g++)
                }), void 0 === e.style && d.style.cssText && (e.style = d.style.cssText, g++), f = h, e
            };
            var j, k, l = function () {
                return f(), g
            }, m = function (a) {
                j || (k = f), j = c(j, a), f = function () {
                    return f = k, o(function (a, b) {
                        var c = j(a, b);
                        null === c ? (d.removeAttribute(a), delete e[a], g--) : c !== b && ("class" === a ? d.className = c : d.setAttribute(a, c), e[a] = c)
                    }), f = h, e
                }
            }, n = function (a) {
                return f()[a]
            }, o = function (b) {
                a.each(f(), function (a, c) {
                    b(c, a)
                })
            };
            return {get: n, each: o, filter: m, getAttributes: i, getAttributeCount: l}
        };
        return {manager: d}
    }),g("3w", ["6c", "1h"], function (a, b, c) {
        var d = "startElement", e = "endElement", f = "text", g = "comment", h = a.manager, i = function (a) {
            return a.replace(/-(.)/g, function (a, b) {
                return b.toUpperCase()
            })
        }, j = function (a) {
            return a.replace(/([A-Z])/g, function (a, b) {
                return "-" + b.toLowerCase()
            })
        }, k = !1, l = function (a, c, d) {
            var e, f, g;
            a.style.length;
            g = c || a.getAttribute("style"), void 0 !== g && null !== g && g.split || (g = a.style.cssText), b.each(g.split(";"), function (a) {
                var c = a.indexOf(":");
                c > 0 && (e = b.trim(a.substring(0, c)), e.toUpperCase() === e && (e = e.toLowerCase()), e = j(e), f = b.trim(a.substring(c + 1)), k || (k = 0 === e.indexOf("mso-")), d(e, f))
            }), k || (f = a.style["mso-list"], f && d("mso-list", f))
        }, m = function (a, c, j) {
            var k, m, n, o, p;
            switch (a.nodeType) {
                case 1:
                    c ? k = e : (k = d, o = h(a), p = {}, l(a, j, function (a, b) {
                        p[a] = b
                    })), m = "HTML" !== a.scopeName && a.scopeName && a.tagName && a.tagName.indexOf(":") <= 0 ? (a.scopeName + ":" + a.tagName).toUpperCase() : a.tagName;
                    break;
                case 3:
                    k = f, n = a.nodeValue;
                    break;
                case 8:
                    k = g, n = a.nodeValue;
                    break;
                default:
                    b.log("WARNING: Unsupported node type encountered: " + a.nodeType)
            }
            var q = function () {
                return o && o.getAttributes(), a
            }, r = function () {
                return m
            }, s = function () {
                return k
            }, t = function () {
                return n
            }, u = function () {
                return "Type: " + k + ", Tag: " + m + " Text: " + n
            }, v = function (a) {
                return o.get(a.toLowerCase())
            }, w = function (a) {
                k === d && o.filter(a)
            }, x = function (c) {
                if (s() === d) {
                    var e = "";
                    b.each(p, function (b, d) {
                        var f = c(d, b);
                        null === f ? (a.style.removeProperty ? a.style.removeProperty(i(d)) : a.style.removeAttribute(i(d)), delete p[d]) : (e += d + ": " + f + "; ", p[d] = f)
                    }), e = e ? e : null, w(function (a, b) {
                        return "style" === a ? e : b
                    }), a.style.cssText = e
                }
            }, y = function () {
                return o.getAttributeCount()
            }, z = function (a) {
                o.each(a)
            }, A = function (a) {
                return p[a]
            }, B = function (a) {
                b.each(p, function (b, c) {
                    a(c, b)
                })
            }, C = function () {
                return b.ephoxGetComputedStyle(a)
            }, D = function () {
                return k === f && /^[\s\u00A0]*$/.test(n)
            };
            return {
                getNode: q,
                tag: r,
                type: s,
                text: t,
                toString: u,
                getAttribute: v,
                filterAttributes: w,
                filterStyles: x,
                getAttributeCount: y,
                attributes: z,
                getStyle: A,
                styles: B,
                getComputedStyle: C,
                isWhitespace: D
            }
        }, n = function (a, c, d, e) {
            var f = e.createElement(a), g = "";
            return b.each(c, function (a, b) {
                f.setAttribute(b, a)
            }), b.each(d, function (a, b) {
                g += b + ":" + a + ";", f.style[i(b)] = a
            }), m(f, !1, "" !== g ? g : null)
        }, o = function (a, b) {
            return m(b.createElement(a), !0)
        }, p = function (a, b) {
            return m(b.createComment(a), !1)
        }, q = function (a, b) {
            return m(b.createTextNode(a))
        }, r = o("HTML", window.document);
        return {
            START_ELEMENT_TYPE: d,
            END_ELEMENT_TYPE: e,
            TEXT_TYPE: f,
            COMMENT_TYPE: g,
            FINISHED: r,
            token: m,
            createStartElement: n,
            createEndElement: o,
            createComment: p,
            createText: q
        }
    }),g("2m", ["3w"], function (a) {
        var b = function (b) {
            var c = b.createDocumentFragment(), d = c, e = function (a) {
                g(a), c = a
            }, f = function () {
                c = c.parentNode
            }, g = function (a) {
                c.appendChild(a)
            }, h = function (c) {
                var d = function (a) {
                    var b = a.getNode().cloneNode(!1);
                    e(b)
                }, h = function (a, c) {
                    var d = b.createTextNode(a.text());
                    g(d)
                };
                switch (c.type()) {
                    case a.START_ELEMENT_TYPE:
                        d(c);
                        break;
                    case a.TEXT_TYPE:
                        h(c);
                        break;
                    case a.END_ELEMENT_TYPE:
                        f();
                        break;
                    case a.COMMENT_TYPE:
                        break;
                    default:
                        throw{message: "Unsupported token type: " + c.type()}
                }
            };
            return {dom: d, receive: h}
        };
        return {create: b}
    }),g("2n", ["3w"], function (a) {
        var b = function (b, c) {
            var d;
            c = c || window.document, d = c.createElement("div"), c.body.appendChild(d), d.style.position = "absolute", d.style.left = "-10000px", d.innerHTML = b, nextNode = d.firstChild || a.FINISHED;
            var e = [];
            endNode = !1;
            var f = function (b, c) {
                return b === a.FINISHED ? b : b ? a.token(b, c) : void 0
            }, g = function () {
                var b = nextNode, g = endNode;
                return !endNode && nextNode.firstChild ? (e.push(nextNode), nextNode = nextNode.firstChild) : endNode || 1 !== nextNode.nodeType ? nextNode.nextSibling ? (nextNode = nextNode.nextSibling, endNode = !1) : (nextNode = e.pop(), endNode = !0) : endNode = !0, b === a.FINISHED || nextNode || (c.body.removeChild(d), nextNode = a.FINISHED), f(b, g)
            }, h = function () {
                return void 0 !== nextNode
            };
            return {hasNext: h, next: g}
        };
        return {tokenize: b}
    }),g("3x", ["3w", "1h"], function (a, b) {
        var c = function (c, d) {
            var e = function (e, f, g) {
                var h, i, j, k = !1, l = function () {
                    d && d(w), k = !1, i = [], j = []
                }, m = function (a) {
                    b.each(a, function (a) {
                        e.receive(a)
                    })
                }, n = function (a) {
                    k ? j.push(a) : e.receive(a)
                }, o = function (b) {
                    d && i.push(b), c(w, b), b === a.FINISHED && r()
                }, p = function () {
                    k = !0
                }, q = function () {
                    m(i), l()
                }, r = function () {
                    u(), m(j), l()
                }, s = function (a) {
                    h = h || [], h.push(a)
                }, t = function () {
                    return h && h.length > 0
                }, u = function () {
                    b.each(h, function (a) {
                        n(a)
                    }), v()
                }, v = function () {
                    h = []
                }, w = {
                    document: g || window.document,
                    settings: f || {},
                    emit: n,
                    receive: o,
                    startTransaction: p,
                    rollback: q,
                    commit: r,
                    defer: s,
                    hasDeferred: t,
                    emitDeferred: u,
                    dropDeferred: v
                };
                return l(), w
            };
            return e
        }, d = function (a) {
            return c(function (c, d) {
                d.filterAttributes(b.bind(a, c)), c.emit(d)
            })
        };
        return {createFilter: c, createAttributeFilter: d}
    }),g("2o", ["3x", "3w"], function (a, b) {
        var c = /^(P|H[1-6]|T[DH]|LI|DIV|BLOCKQUOTE|PRE|ADDRESS|FIELDSET|DD|DT|CENTER)$/, d = function (a) {
            return c.test(a.tag())
        }, e = function () {
            return null
        }, f = !1;
        return a.createFilter(function (a, c) {
            var g = function () {
                f || (a.emit(b.createStartElement("P", {}, {}, a.document)), f = !0)
            };
            switch (c.type()) {
                case b.TEXT_TYPE:
                    g(), a.emit(c);
                    break;
                case b.END_ELEMENT_TYPE:
                    f && (d(c) || c === b.FINISHED) ? (a.emit(b.createEndElement("P", a.document)), f = !1) : "BR" === c.tag() && a.emit(c);
                    break;
                case b.START_ELEMENT_TYPE:
                    "BR" === c.tag() ? (c.filterAttributes(e), c.filterStyles(e), a.emit(c)) : "IMG" === c.tag() && c.getAttribute("alt") && (g(), a.emit(b.createText(c.getAttribute("alt"), a.document)))
            }
            c === b.FINISHED && a.emit(c)
        })
    }),g("3y", ["3w"], function (a) {
        var b = function () {
            if (navigator.userAgent.indexOf("Gecko") > 0 && navigator.userAgent.indexOf("WebKit") < 0) return !1;
            var b = document.createElement("div");
            try {
                b.innerHTML = '<p style="mso-list: Ignore;">&nbsp;</p>'
            } catch (c) {
                return !1
            }
            return "Ignore" === a.token(b.firstChild).getStyle("mso-list")
        }, c = b(), d = function (a) {
            return "A" === a.tag() || "SPAN" === a.tag()
        }, e = function (a) {
            var b = a.getStyle("mso-list");
            return b && "skip" !== b
        }, f = function (b, c) {
            return b.type() === a.START_ELEMENT_TYPE ? 0 === b.getAttributeCount() || c && 1 === b.getAttributeCount() && null !== b.getAttribute("style") && void 0 !== b.getAttribute("style") : b.type() === a.END_ELEMENT_TYPE
        };
        return {hasNoAttributes: f, supportsCustomStyles: c, spanOrA: d, hasMsoListStyle: e}
    }),g("42", ["3w", "1h"], function (a, b) {
        var c = [{regex: /^\(?[dc][\.\)]$/, type: {tag: "OL", type: "lower-alpha"}}, {
                regex: /^\(?[DC][\.\)]$/,
                type: {tag: "OL", type: "upper-alpha"}
            }, {
                regex: /^\(?M*(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})[\.\)]$/,
                type: {tag: "OL", type: "upper-roman"}
            }, {
                regex: /^\(?m*(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})[\.\)]$/,
                type: {tag: "OL", type: "lower-roman"}
            }, {regex: /^\(?[0-9]+[\.\)]$/, type: {tag: "OL"}}, {
                regex: /^([0-9]+\.)*[0-9]+\.?$/,
                type: {tag: "OL", variant: "outline"}
            }, {regex: /^\(?[a-z]+[\.\)]$/, type: {tag: "OL", type: "lower-alpha"}}, {
                regex: /^\(?[A-Z]+[\.\)]$/,
                type: {tag: "OL", type: "upper-alpha"}
            }], d = {
                "\u2022": {tag: "UL", type: "disc"},
                "\xb7": {tag: "UL", type: "disc"},
                "\xa7": {tag: "UL", type: "square"}
            }, e = {o: {tag: "UL", type: "circle"}, "-": {tag: "UL", type: "disc"}, "\u25cf": {tag: "UL", type: "disc"}},
            f = function (a, b) {
                var c = {tag: a.tag, type: a.type, variant: b};
                return a.start && (c.start = a.start), a.type || delete c.type, c
            }, g = function (a, g, i) {
                var j, k, l, m = null;
                return a && (j = a.text, k = a.symbolFont), j = b.trim(j), m = e[j], m ? m = f(m, j) : k ? (m = d[j], m = m ? f(m, j) : {
                    tag: "UL",
                    variant: j
                }) : (b.each(c, function (a) {
                    if (a.regex.test(j)) {
                        if (g && h(a.type, g, !0)) return m = a.type, m.start = parseInt(j), !1;
                        m || (m = a.type), m.start = parseInt(j)
                    }
                }), m && !m.variant && (l = "(" === j.charAt(0) ? "()" : ")" === j.charAt(j.length - 1) ? ")" : ".", m = f(m, l))), m && "OL" === m.tag && i && ("P" !== i.tag() || /^MsoHeading/.test(i.getAttribute("class"))) && (m = null), m
            }, h = function (a, b, c) {
                return a === b || a && b && a.tag === b.tag && a.type === b.type && (c || a.variant === b.variant)
            }, i = function (b, c) {
                return b.type() == a.START_ELEMENT_TYPE && (font = b.getStyle("font-family"), font ? c = "Wingdings" === font || "Symbol" === font : /^(P|H[1-6]|DIV)$/.test(b.tag()) && (c = !1)), c
            };
        return {guessListType: g, eqListType: h, checkFont: i}
    }),g("3z", ["3w", "42", "1h"], function (a, b, c) {
        var d = function (d, e) {
            var f, g, h, i = !1, j = function (a) {
                var b = a.style.fontFamily;
                b && (i = "Wingdings" === b || "Symbol" === b)
            };
            if (d.type() === a.START_ELEMENT_TYPE && e.openedTag && "SPAN" === d.tag()) {
                for (f = e.openedTag.getNode(), j(f), f.childNodes.length > 1 && "A" === f.firstChild.tagName && "" === f.firstChild.textContent && (f = f.childNodes[1]); f.firstChild && ("SPAN" === f.firstChild.tagName || "A" === f.firstChild.tagName);) f = f.firstChild, j(f);
                if (f = f.firstChild, !f || 3 !== f.nodeType) return f && "IMG" === f.tagName;
                if (g = f.value, c.trim(g) || (f = f.parentNode.nextSibling, g = f ? f.value : ""), !f || c.trim(f.parentNode.textContent) != g) return !1;
                if (h = b.guessListType({
                    text: g,
                    symbolFont: i
                }, null, e.originalToken)) return f.nextSibling && "SPAN" === f.nextSibling.tagName && /^[\u00A0\s]/.test(f.nextSibling.firstChild.value) && ("P" === e.openedTag.tag() || "UL" === h.tag)
            }
            return !1
        }, e = function (a, b) {
            var c, d = 0;
            for (c = a.parentNode; null !== c && void 0 !== c && c !== b.parentNode;) d += c.offsetLeft, c = c.offsetParent;
            return d
        }, f = function (a) {
            var b = {};
            return function (c, d) {
                var e, f = c + "," + d;
                return b.hasOwnProperty(f) ? b[f] : (e = a.call(null, c, d), b[f] = e, e)
            }
        }, g = function (a) {
            var b = a.indexOf(".");
            if (b >= 0 && c.trim(a.substring(b + 1)) === className) return match = results[2], !1
        }, h = f(function (a, b) {
            var d, e, f, h, i = /([^{]+){([^}]+)}/g;
            for (i.lastIndex = 0; null !== (d = i.exec(a)) && !e;) c.each(d[1].split(","), g(selector));
            return !!e && (f = document.createElement("p"), f.setAttribute("style", e), h = c.ephoxGetComputedStyle(f), !!h && "" + h.marginLeft)
        }), i = function () {
            var a, b, c = function (c, d, f, g) {
                var i, j, k = 1;
                return g && /^([0-9]+\.)+[0-9]+\.?$/.test(g.text) ? g.text.replace(/([0-9]+|\.$)/g, "").length + 1 : (i = b || parseInt(h(f, d.getAttribute("class"))), j = e(c.getNode(), d.getNode()), i ? a ? j += a : 0 === j && (a = i, j += i) : i = 48, b = i = Math.min(j, i), k = Math.max(1, Math.floor(j / i)) || 1)
            };
            return {guessIndentLevel: c}
        }, j = function () {
            var b = !1, c = "", d = function (d) {
                return b && d.type() === a.TEXT_TYPE ? (c += d.text(), !0) : d.type() === a.START_ELEMENT_TYPE && "STYLE" === d.tag() ? (b = !0, !0) : d.type() === a.END_ELEMENT_TYPE && "STYLE" === d.tag() && (b = !1, !0)
            };
            return {check: d}
        };
        return {isListWithoutCommentsOrStyles: d, indentGuesser: i, styles: j}
    }),g("40", ["3w", "42"], function (a, b) {
        var c = ["disc", "circle", "square"], d = function (a, b) {
            return "UL" === a.tag && c[b - 1] === a.type && (a = {tag: "UL"}), a
        };
        return function (c, e) {
            var f, g = [], h = [], i = 0, j = function (b, d) {
                var h = {}, j = {};
                i++, d && b.type && (h = {"list-style-type": b.type}), b.start && b.start > 1 && (j = {start: b.start}), g.push(b), c.emit(a.createStartElement(b.tag, j, h, e)), f = b
            }, k = function () {
                c.emit(a.createEndElement(g.pop().tag, e)), i--, f = g[g.length - 1]
            }, l = function () {
                for (; i > 0;) m(), k();
                c.commit()
            }, m = function () {
                var b = h ? h.pop() : "P";
                "P" != b && c.emit(a.createEndElement(b, e)), c.emit(a.createEndElement("LI", e))
            }, n = function (d, g, i) {
                var l = {};
                if (d) {
                    var m = d.getStyle("margin-left");
                    void 0 !== m && (l["margin-left"] = m)
                } else l["list-style-type"] = "none";
                f && !b.eqListType(f, g) && (k(), i && (c.emit(a.createStartElement("P", {}, {}, e)), c.emit(a.createText("\xa0", e)), c.emit(a.createEndElement("P", e))), j(g, !0)), c.emit(a.createStartElement("LI", {}, l, e)), d && "P" != d.tag() ? (h.push(d.tag()), d.filterStyles(function () {
                    return null
                }), c.emit(d)) : h.push("P")
            }, o = function (b, f, g, l) {
                if (g) {
                    for (i || (i = 0); i > b;) m(), k();
                    if (g = d(g, b), i == b) m(), n(f, g, l); else for (b > 1 && h.length > 0 && "P" !== h[h.length - 1] && (c.emit(a.createEndElement(h[h.length - 1], e)), h[h.length - 1] = "P"); i < b;) j(g, i == b - 1), n(i == b ? f : void 0, g)
                }
            }, p = function () {
                return i
            }, q = function () {
                return f
            };
            return {
                openList: j,
                closelist: k,
                closeAllLists: l,
                closeItem: m,
                openLI: n,
                openItem: o,
                getCurrentListType: q,
                getCurrentLevel: p
            }
        }
    }),g("41", ["3y", "3w", "3z", "42", "1h"], function (a, b, c, d, e) {
        var f = function (a, b) {
            e.log("Unexpected token in list conversion: " + b.toString()), a.rollback()
        }, g = function (a, b, c) {
            return b == c ? a : null
        }, h = function (c, d, f) {
            f.type() === b.TEXT_TYPE && "" === e.trim(f.text()) ? c.defer(f) : d.skippedPara || f.type() !== b.START_ELEMENT_TYPE || "P" !== f.tag() || a.hasMsoListStyle(f) ? j(c, d, f) : (d.openedTag = f, c.defer(f), d.nextFilter = i)
        }, i = function (d, e, f) {
            f.type() !== b.START_ELEMENT_TYPE || "SPAN" !== f.tag() || 0 !== e.spanCount.length || !a.supportsCustomStyles && c.isListWithoutCommentsOrStyles(f, e) || a.hasMsoListStyle(f) ? f.type() === b.END_ELEMENT_TYPE ? "SPAN" === f.tag() ? (d.defer(f), e.spanCount.pop()) : "P" === f.tag() ? (d.defer(f), e.skippedPara = !0, e.openedTag = null, e.nextFilter = h) : (e.nextFilter = j, e.nextFilter(d, e, f)) : f.isWhitespace() ? d.defer(f) : (e.nextFilter = j, e.nextFilter(d, e, f)) : (d.defer(f), e.spanCount.push(f))
        }, j = function (d, e, f) {
            var g = function () {
                e.emitter.closeAllLists(), d.emitDeferred(), e.openedTag = null, d.emit(f), e.nextFilter = j
            };
            if (f.type() === b.START_ELEMENT_TYPE && a.hasMsoListStyle(f) && "LI" !== f.tag()) {
                var h = (f.getStyle("mso-list"), / level([0-9]+)/.exec(f.getStyle("mso-list")));
                h && h[1] ? (e.itemLevel = parseInt(h[1], 10) + e.styleLevelAdjust, e.nextFilter === j ? d.emitDeferred() : d.dropDeferred(), e.nextFilter = l, d.startTransaction(), e.originalToken = f, e.commentMode = !1) : g()
            } else !a.supportsCustomStyles && (f.type() === b.COMMENT_TYPE && "[if !supportLists]" === f.text() || c.isListWithoutCommentsOrStyles(f, d)) ? (f.type() === b.START_ELEMENT_TYPE && "SPAN" === f.tag() && e.spanCount.push(f), e.nextFilter = l, d.startTransaction(), e.originalToken = e.openedTag, e.commentMode = !0, e.openedTag = null, d.dropDeferred()) : f.type() === b.END_ELEMENT_TYPE && a.spanOrA(f) ? (d.defer(f), e.spanCount.pop()) : f.type() === b.START_ELEMENT_TYPE ? a.spanOrA(f) ? (d.defer(f), e.spanCount.push(f)) : (e.openedTag && (e.emitter.closeAllLists(), d.emitDeferred()), e.openedTag = f, d.defer(f)) : g()
        }, k = function (a, c, d) {
            d.type() === b.END_ELEMENT_TYPE && c.originalToken.tag() === d.tag() && (c.nextFilter = h, c.styleLevelAdjust = -1), a.emit(d)
        }, l = function (a, c, d) {
            if (d.type() == b.START_ELEMENT_TYPE && "Ignore" === d.getStyle("mso-list") && (c.nextFilter = m), d.type() === b.START_ELEMENT_TYPE && "SPAN" === d.tag()) c.spanCount.push(d), (c.commentMode && "" === d.getAttribute("style") || null === d.getAttribute("style")) && (c.nextFilter = m); else if ("A" === d.tag()) d.type() === b.START_ELEMENT_TYPE ? c.spanCount.push(d) : c.spanCount.pop(); else if (d.type() === b.TEXT_TYPE) if (c.commentMode) c.nextFilter = m, c.nextFilter(a, c, d); else {
                var g = c.originalToken, h = c.spanCount;
                c.emitter.closeAllLists(), a.emit(g), e.each(h, e.bind(a.emit, a)), a.emit(d), a.commit(), c.originalToken = g, c.nextFilter = k
            } else (c.commentMode || d.type() !== b.COMMENT_TYPE) && f(a, d)
        }, m = function (c, d, e) {
            e.type() === b.TEXT_TYPE ? e.isWhitespace() || (d.nextFilter = n, d.bulletInfo = {
                text: e.text(),
                symbolFont: d.symbolFont
            }) : a.spanOrA(e) ? e.type() === b.START_ELEMENT_TYPE ? d.spanCount.push(e) : d.spanCount.pop() : e.type() === b.START_ELEMENT_TYPE && "IMG" === e.tag() ? (d.nextFilter = n, d.bulletInfo = {
                text: "\u2202",
                symbolFont: !0
            }) : f(c, e)
        }, n = function (c, d, e) {
            e.type() === b.START_ELEMENT_TYPE && a.spanOrA(e) ? (d.spanCount.push(e), d.nextFilter = o) : e.type() === b.END_ELEMENT_TYPE && a.spanOrA(e) ? (d.spanCount.pop(), d.nextFilter = p) : e.type() === b.END_ELEMENT_TYPE && "IMG" === e.tag() || f(c, e)
        }, o = function (c, d, e) {
            e.type() === b.END_ELEMENT_TYPE && (a.spanOrA(e) && d.spanCount.pop(), d.nextFilter = p)
        }, p = function (c, h, i) {
            var j = function (a) {
                if (h.nextFilter = q, h.commentMode && (h.itemLevel = h.indentGuesser.guessIndentLevel(i, h.originalToken, h.styles.styles, h.bulletInfo)), h.listType = d.guessListType(h.bulletInfo, g(h.emitter.getCurrentListType(), h.emitter.getCurrentLevel(), h.itemLevel), h.originalToken), h.listType) {
                    for (h.emitter.openItem(h.itemLevel, h.originalToken, h.listType, h.skippedPara), c.emitDeferred(); h.spanCount.length > 0;) c.emit(h.spanCount.shift());
                    a && c.emit(i)
                } else e.log("Unknown list type: " + h.bulletInfo.text + " Symbol font? " + h.bulletInfo.symbolFont), c.rollback()
            };
            i.type() === b.TEXT_TYPE || i.type() === b.START_ELEMENT_TYPE ? j(!0) : i.type() === b.COMMENT_TYPE ? j("[endif]" !== i.text()) : i.type() === b.END_ELEMENT_TYPE ? a.spanOrA(i) && h.spanCount.pop() : f(c, i)
        }, q = function (a, c, d) {
            d.type() === b.END_ELEMENT_TYPE && d.tag() === c.originalToken.tag() ? (c.nextFilter = h, c.skippedPara = !1) : a.emit(d)
        }, r = j;
        return {initial: r}
    }),g("2p", ["3x", "3y", "3w", "3z", "40", "41", "42", "1h"], function (a, b, c, d, e, f, g, h) {
        var i = {}, j = function (a) {
            i.nextFilter = f.initial, i.itemLevel = 0, i.originalToken = null, i.commentMode = !1, i.openedTag = null, i.symbolFont = !1, i.listType = null, i.indentGuesser = d.indentGuesser(), i.emitter = e(a, a.document), i.styles = d.styles(), i.spanCount = [], i.skippedPara = !1, i.styleLevelAdjust = 0, i.bulletInfo = void 0
        };
        j({});
        var k = function (a) {
            j(a)
        }, l = function (a, b) {
            i.styles.check(b) || (i.symbolFont = g.checkFont(b, i.symbolFont), i.nextFilter(a, i, b))
        };
        return a.createFilter(l, k)
    }),g("2q", ["1h"], function (a) {
        var b = function (a) {
            var b = a, c = 65279 === b.charCodeAt(b.length - 1);
            return c ? b.substring(0, b.length - 1) : a
        }, c = function (a) {
            return /<(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)/.test(a) ? a.replace(/(?:<br>&nbsp;[\s\r\n]+|<br>)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:<br>&nbsp;[\s\r\n]+|<br>)*/g, "$1") : a
        }, d = function (a) {
            return a.replace(/<br><br>/g, "<BR><BR>")
        }, e = function (a) {
            return a.replace(/<br>/g, " ")
        }, f = function (a) {
            return a.replace(/<BR><BR>/g, "<br>")
        }, g = [b], h = tinymce.isIE && document.documentMode >= 9 ? [f, e, d, c].concat(g) : g, i = a.compose(h);
        return {all: i, textOnly: b}
    }),g("43", ["3x"], function (a) {
        var b = /^(mso-.*|tab-stops|tab-interval|language|text-underline|text-effect|text-line-through|font-color|horiz-align|list-image-[0-9]+|separator-image|table-border-color-(dark|light)|vert-align|vnd\..*)$/,
            c = function (a) {
                return function (c, d) {
                    var e = !1;
                    switch (a) {
                        case"all":
                        case"*":
                            e = !0;
                            break;
                        case"valid":
                            e = !b.test(c);
                            break;
                        case void 0:
                        case"none":
                            e = "list-style-type" === c;
                            break;
                        default:
                            e = ("," + a + ",").indexOf("," + c + ",") >= 0
                    }
                    return e ? d : null
                }
            };
        return a.createFilter(function (a, b) {
            var d = a.settings.get("retain_style_properties");
            b.filterStyles(c(d)), a.emit(b)
        })
    }),g("44", ["3x", "3w"], function (a, b) {
        return a.createFilter(function (a, c) {
            a.seenList ? a.emit(c) : a.inferring ? ("LI" === c.tag() && (c.type() === b.START_ELEMENT_TYPE ? a.inferring++ : (a.inferring--, a.inferring || (a.needsClosing = !0))), a.emit(c)) : ("OL" === c.tag() || "UL" === c.tag() ? a.seenList = !0 : "LI" === c.tag() && (a.inferring = 1, a.needsClosing || a.emit(b.createStartElement("UL", {}, {}, a.document))), !a.needsClosing || a.inferring || c.isWhitespace() || (a.needsClosing = !1, a.emit(b.createEndElement("UL", a.document))), a.emit(c))
        })
    }),g("45", ["3x"], function (a) {
        return a.createAttributeFilter(function (a, b) {
            return "name" === a || "id" === a ? null : b
        })
    }),g("46", ["3x"], function (a) {
        return a.createAttributeFilter(function (a, b) {
            var c;
            if ("class" === a) switch (c = this.settings.get("strip_class_attributes")) {
                case"mso":
                    return 0 === b.indexOf("Mso") ? null : b;
                case"none":
                    return b;
                default:
                    return null
            }
            return b
        })
    }),g("47", ["3x", "3y", "3w"], function (a, b, c) {
        var d = [], e = [], f = !1, g = function (a, b) {
            var e, f, g = 1;
            for (e = b + 1; e < a; e++) if (f = d[e], f && "SPAN" === f.tag()) if (f.type() === c.START_ELEMENT_TYPE) g++; else if (f.type() === c.END_ELEMENT_TYPE && (g--, 0 === g)) return void(d[e] = null)
        }, h = function (a) {
            if (f) {
                var h, i, j = d.length;
                for (i = 0; i < j; i++) h = d[i], h && (h.type() === c.START_ELEMENT_TYPE && "SPAN" === h.tag() && b.hasNoAttributes(h) ? g(j, i) : a.emit(h))
            }
            d = [], e = [], f = !1
        }, i = function (a, b) {
            if (d.push(b), e = e || [], b.type() === c.START_ELEMENT_TYPE) e.push(b); else if (b.type() === c.END_ELEMENT_TYPE && (e.pop(), 0 === e.length)) return void h(a, b)
        };
        return a.createFilter(function (a, e) {
            var g = ",FONT,EM,STRONG,SAMP,ACRONYM,CITE,CODE,DFN,KBD,TT,B,I,U,S,SUB,SUP,INS,DEL,VAR,SPAN,";
            d = d || [];
            var h = function (a) {
                return !(g.indexOf("," + a.tag() + ",") >= 0 && b.hasNoAttributes(a, !0))
            };
            0 === d.length ? e.type() === c.START_ELEMENT_TYPE ? h(e) ? a.emit(e) : i(a, e) : a.emit(e) : (f || (f = h(e)), i(a, e))
        })
    }),g("48", ["3x"], function (a) {
        return a.createAttributeFilter(function (a, b) {
            return "style" === a && "" === b ? null : b
        })
    }),g("49", ["3x"], function (a) {
        return a.createAttributeFilter(function (a, b) {
            return "lang" === a ? null : b
        })
    }),g("4a", ["3x", "3w"], function (a, b) {
        return a.createFilter(function (a, c) {
            if ("IMG" === c.tag()) {
                if (c.type() === b.END_ELEMENT_TYPE && a.skipEnd) return void(a.skipEnd = !1);
                if (c.type() === b.START_ELEMENT_TYPE) {
                    if (/^file:/.test(c.getAttribute("src"))) return void(a.skipEnd = !0);
                    if (a.settings.get("base_64_images") && /^data:image\/.*;base64/.test(c.getAttribute("src"))) return void(a.skipEnd = !0)
                }
            }
            a.emit(c)
        })
    }),g("4b", ["3x"], function (a) {
        return a.createFilter(function (a, b) {
            "META" !== b.tag() && "LINK" !== b.tag() && a.emit(b)
        })
    }),g("4c", ["3x", "3y", "3w"], function (a, b, c) {
        var d = function (a) {
            return !b.hasNoAttributes(a) && !/^OLE_LINK/.test(a.getAttribute("name"))
        }, e = [];
        return a.createFilter(function (a, b) {
            var f;
            b.type() === c.START_ELEMENT_TYPE && "A" === b.tag() ? (e.push(b), d(b) && a.defer(b)) : b.type() === c.END_ELEMENT_TYPE && "A" === b.tag() ? (f = e.pop(), d(f) && a.defer(b), 0 === e.length && a.emitDeferred()) : a.hasDeferred() ? a.defer(b) : a.emit(b)
        })
    }),g("4d", ["3x", "3w"], function (a, b) {
        var c = !1;
        return a.createFilter(function (a, d) {
            "SCRIPT" === d.tag() ? c = d.type() === b.START_ELEMENT_TYPE : c || (d.filterAttributes(function (a, b) {
                return /^on/.test(a) || "language" === a ? null : b
            }), a.emit(d))
        })
    }),g("2r", ["43", "44", "45", "46", "47", "48", "49", "4a", "4b", "4c", "4d"], function (a, b, c, d, e, f, g, h, i, j, k) {
        return [k, c, h, a, g, f, d, j, e, i, b]
    }),g("4e", ["3x"], function (a) {
        return a.createFilter(function (a, b) {
            b.filterAttributes(function (a, c) {
                return "align" === a ? null : "UL" !== b.tag() && "OL" !== b.tag() || "type" !== a ? c : null
            }), a.emit(b)
        })
    }),g("4f", ["3x"], function (a) {
        return a.createAttributeFilter(function (a, b) {
            return /^xmlns(:|$)/.test(a) ? null : b
        })
    }),g("4g", ["3x"], function (a) {
        return a.createFilter(function (a, b) {
            b.tag && /^([OVWXP]|U[0-9]+|ST[0-9]+):/.test(b.tag()) || a.emit(b)
        })
    }),g("4h", ["3x"], function (a) {
        return a.createAttributeFilter(function (a, b) {
            return "href" === a && (b.indexOf("#_Toc") >= 0 || b.indexOf("#_mso") >= 0) ? null : b
        })
    }),g("4i", ["3x"], function (a) {
        return a.createAttributeFilter(function (a, b) {
            return /^v:/.test(a) ? null : b
        })
    }),g("2s", ["4e", "4f", "4g", "4h", "4i", "2p"], function (a, b, c, d, e, f) {
        return [c, f, d, e, b, a]
    }),g("1k", ["2m", "2n", "2o", "2p", "2q", "2r", "2s"], function (a, b, c, d, e, f, g) {
        var h = function (a, b, c, d) {
            var e, f = b;
            for (e = a.length - 1; e >= 0; e--) f = a[e](f, c, d);
            return f
        }, i = function (c, d, e, f) {
            var g = a.create(e), i = b.tokenize(c, e);
            for (pipeline = h(f, g, d, e); i.hasNext();) pipeline.receive(i.next());
            return g.dom
        }, j = function (a, b, c) {
            var d = e.all(a), h = l(d);
            b.setWordContent(h);
            var j = f;
            return h && (j = g.concat(f)), i(d, b, c, j)
        }, k = function (a, b, d) {
            var f = e.textOnly(a);
            return i(f, b, d, [c])
        }, l = function (a) {
            return a.indexOf("<o:p>") >= 0 || a.indexOf("p.MsoNormal, li.MsoNormal, div.MsoNormal") >= 0 || a.indexOf("MsoListParagraphCxSpFirst") >= 0 || a.indexOf("<w:WordDocument>") >= 0
        };
        return {filter: j, filterPlainText: k, isWordContent: l}
    }),g("f", ["1i", "1j", "1k", "x"], function (a, b, c, d) {
        return function (e, f) {
            var g = function (g) {
                var h = function (d) {
                    var f = {content: g};
                    e.fire("PastePreProcess", f);
                    var h = b.create(d || e.settings.powerpaste_word_import, d || e.settings.powerpaste_html_import, !0),
                        i = c.filter(f.content, h, e.getDoc());
                    e.fire("PastePostProcess", i), e.undoManager.transact(function () {
                        a.insert(i, e)
                    })
                }, i = function (a) {
                    return "clean" === a || "merge" === a
                }, j = function () {
                    var a, b = function () {
                        a.close(), h("clean")
                    }, c = function () {
                        a.close(), h("merge")
                    }, g = [{text: f("cement.dialog.paste.clean"), onclick: b}, {
                        text: f("cement.dialog.paste.merge"),
                        onclick: c
                    }], i = {
                        title: f("cement.dialog.paste.title"),
                        spacing: 10,
                        padding: 10,
                        items: [{type: "container", html: f("cement.dialog.paste.instructions")}],
                        buttons: g
                    };
                    a = e.windowManager.open(i), d(function () {
                        a && a.getEl().focus()
                    }, 1)
                };
                c.isWordContent(g) && !i(e.settings.powerpaste_word_import) ? j() : i(e.settings.powerpaste_html_import) ? h() : j()
            };
            return {showDialog: g}
        }
    }),g("4", ["d", "e", "f"], function (a, b, c) {
        return function (d, e, f) {
            var g, h, i = this, j = c(d, a.translate), k = function (a) {
                return function (b) {
                    a(b)
                }
            };
            g = b.getOnPasteFunction(d, j.showDialog, e), d.on("paste", k(g)), h = b.getOnKeyDownFunction(d, j.showDialog, e), d.on("keydown", k(h)), d.addCommand("mceInsertClipboardContent", function (a, b) {
                j.showDialog(b.content || b)
            }), d.settings.paste_preprocess && d.on("PastePreProcess", function (a) {
                d.settings.paste_preprocess.call(i, i, a)
            })
        }
    }),g("1s", [], function () {
        var a = 0, b = function (b) {
            var c = new Date, d = c.getTime(), e = Math.floor(1e9 * Math.random());
            return a++, b + "_" + e + a + String(d)
        };
        return {generate: b}
    }),g("1n", ["g", "1s", "2t", "h", "o", "2u", "2b", "j"], function (a, b, c, d, e, f, g, h) {
        var i = c.detect(), j = function (a) {
            var b = g.createObjectURL(a);
            return k(a, b)
        }, k = function (a, c) {
            return e.nu(function (e) {
                var g = f();
                g.onload = function (f) {
                    var g = b.generate("image"), h = f.target, i = d.blob(g, a, c, h);
                    e(i)
                }, g.readAsDataURL(a)
            })
        }, l = function (a) {
            return 0 === a.length ? e.pure([]) : e.mapM(a, j)
        }, m = function (a) {
            return a.raw().target.files || a.raw().dataTransfer.files
        }, n = function (b) {
            return 1 === b.length && a.contains(b, "Files")
        }, o = function (b) {
            return !a.contains(b, "text/_moz_htmlcontext")
        }, p = function (b) {
            return a.contains(b, "Files")
        }, q = function (a) {
            return !0
        }, r = function () {
            return i.browser.isChrome() || i.browser.isSafari() || i.browser.isOpera() ? p : i.browser.isFirefox() ? o : i.browser.isIE() ? n : q
        }, s = r(), t = function (c) {
            var f = a.map(c, function (a) {
                var c = b.generate("image");
                return d.url(c, h.get(a, "src"), a)
            });
            return e.pure(f)
        };
        return {multiple: l, toFiles: m, isFiles: s, fromImages: t, single: j, singleWithUrl: k}
    }),g("i", ["1n"], function (a) {
        var b = function (b) {
            return a.multiple(b)
        }, c = function (b) {
            return a.single(b)
        }, d = function (b, c) {
            return a.singleWithUrl(b, c)
        };
        return {multiple: b, single: c, singleWithUrl: d}
    }),g("5", ["g", "h", "i", "j", "k", "d", "f", "2"], function (a, b, c, d, e, f, g, h) {
        return function (i, j, k, l) {
            var m, n = /^image\/(jpe?g|png|gif|bmp)$/i;
            i.on("dragstart dragend", function (a) {
                m = "dragstart" === a.type
            }), i.on("dragover dragend dragleave", function (a) {
                a.preventDefault()
            });
            var o = function (a) {
                var b = {};
                if (a) {
                    if (a.getData) {
                        var c = a.getData("Text");
                        c && c.length > 0 && (b["text/plain"] = c)
                    }
                    if (a.types) for (var d = 0; d < a.types.length; d++) {
                        var e = a.types[d];
                        b[e] = a.getData(e)
                    }
                }
                return b
            }, p = function (a, b) {
                return b in a && a[b].length > 0
            }, q = function (a) {
                return !r(a) && (p(a, "text/html") || p(a, "text/plain"))
            }, r = function (a) {
                var b = a["text/plain"];
                return !!b && 0 === b.indexOf("file://")
            }, s = function (b) {
                var c = b.target.files || b.dataTransfer.files;
                return a.filter(c, function (a) {
                    return n.test(a.type)
                })
            }, t = function (c) {
                return a.map(c, function (a) {
                    var c = e.fromTag("img"), f = b.cata(a, l.getLocalURL, function (a, b, c) {
                        return b
                    });
                    return d.set(c, "src", f), c.dom().outerHTML
                }).join("")
            }, u = function (a) {
                c.multiple(a).get(function (a) {
                    var b = t(a);
                    i.insertContent(b, {merge: i.settings.paste_merge_formats !== !1}), l.uploadImages(a)
                })
            };
            i.on("drop", function (a) {
                if (!m) {
                    if (h.dom.RangeUtils && h.dom.RangeUtils.getCaretRangeFromPoint) {
                        var b = h.dom.RangeUtils.getCaretRangeFromPoint(a.clientX, a.clientY, i.getDoc());
                        b && i.selection.setRng(b)
                    }
                    var c = s(a);
                    if (c.length > 0) return u(c), void a.preventDefault();
                    var d = o(a.dataTransfer);
                    if (q(d)) {
                        var e = g(i, f.translate);
                        e.showDialog(d["text/html"] || d["text/plain"]), a.preventDefault()
                    }
                }
            })
        }
    }),g("4r", ["g", "2c", "1f"], function (a, b, c) {
        var d = ["officeStyles", "htmlStyles", "isWord", "proxyBin", "isInternal", "backgroundAssets"],
            e = function (b, c) {
                var e = {};
                return a.each(d, function (a) {
                    var d = c[a]().or(b[a]());
                    d.each(function (b) {
                        e[a] = b
                    })
                }), f(e)
            }, f = b.immutableBag([], d);
        return {nu: f, merge: e}
    }),g("2w", ["n", "1m"], function (a, b) {
        var c = b.generate([{error: ["message"]}, {paste: ["elements", "assets", "correlated"]}, {cancel: []}, {incomplete: ["elements", "assets", "correlated", "message"]}]),
            d = function (a, b, c, d, e) {
                return a.fold(b, c, d, e)
            }, e = function (b, e) {
                return d(b, a.none, a.none, a.none, function (b, f, g, h) {
                    return d(e, a.none, function (b, d, e) {
                        return a.some(c.incomplete(b, d, e, h))
                    }, a.none, a.none)
                }).getOr(e)
            };
        return {error: c.error, paste: c.paste, cancel: c.cancel, incomplete: c.incomplete, cata: d, carry: e}
    }),g("4q", ["4r", "2w", "1v", "2c"], function (a, b, c, d) {
        var e = d.immutableBag(["response", "bundle"], []), f = function (a) {
            return l(function (b) {
                var c = e(a);
                b(c)
            })
        }, g = function (a, b) {
            a(e(b))
        }, h = function (a) {
            return f({response: a.response(), bundle: a.bundle()})
        }, i = function (c) {
            return f({response: b.error(c), bundle: a.nu({})})
        }, j = function () {
            return f({response: b.cancel(), bundle: a.nu({})})
        }, k = function () {
            return f({response: b.paste([], [], []), bundle: a.nu({})})
        }, l = function (a) {
            var b = function (b) {
                a(b)
            };
            return c(l, b)
        };
        return {call: g, sync: l, pure: f, pass: h, done: e, error: i, initial: k, cancel: j}
    }),g("23", ["n"], function (a) {
        var b = function (a) {
            for (var b = [], c = function (a) {
                b.push(a)
            }, d = 0; d < a.length; d++) a[d].each(c);
            return b
        }, c = function (b, c) {
            for (var d = 0; d < b.length; d++) {
                var e = c(b[d], d);
                if (e.isSome()) return e
            }
            return a.none()
        }, d = function (b, c) {
            for (var d = [], e = 0; e < b.length; e++) {
                var f = b[e];
                if (!f.isSome()) return a.none();
                d.push(f.getOrDie())
            }
            return a.some(c.apply(null, d))
        };
        return {cat: b, findMap: c, liftN: d}
    }),g("2v", ["4q", "4r", "2w", "g", "p", "23", "2c"], function (a, b, c, d, e, f, g) {
        var h = g.immutable("steps", "input", "label", "capture"), i = function (a, b) {
            return f.findMap(a, function (a) {
                return a.getAvailable(b).map(function (b) {
                    return h(a.steps(), b, a.label(), a.capture())
                })
            })
        }, j = function (a, b, c) {
            var d = i(a, c);
            return d.getOrThunk(function () {
                var a = b.getAvailable(c);
                return h(b.steps(), a, b.label(), b.capture())
            })
        }, k = function (d, f) {
            var g = e.curry(a.pass, d), h = function () {
                return f().map(function (e) {
                    var f = b.merge(d.bundle(), e.bundle()), g = c.carry(d.response(), e.response());
                    return a.done({response: g, bundle: f})
                })
            };
            return c.cata(d.response(), g, h, g, h)
        }, l = function (b, c) {
            var e = d.foldl(b, function (a, b) {
                return a.bind(function (a) {
                    var d = function () {
                        return b(c, a)
                    };
                    return k(a, d)
                })
            }, a.initial());
            return e.map(function (a) {
                return a.response()
            })
        };
        return {choose: j, run: l}
    }),g("4s", [], function () {
        var a = function () {
            var a = !1, b = function () {
                return a
            }, c = function () {
                a = !0
            }, d = function () {
                a = !1
            };
            return {isBlocked: b, block: c, unblock: d}
        };
        return {create: a}
    }),g("4t", [], function () {
        var a = function (a, b) {
            return {control: a, instance: b}
        };
        return {create: a}
    }),g("2x", ["4s", "4t"], function (a, b) {
        var c = function (c) {
            var d = a.create(), e = function () {
                d.isBlocked() || c.apply(null, arguments)
            };
            return b.create(d, e)
        };
        return {tap: c}
    }),g("2y", ["2t", "p", "x"], function (a, b, c) {
        var d = a.detect(), e = function (a, b, c) {
            b.control.block(), a.dom().execCommand("paste"), c(), b.control.unblock()
        }, f = function (a, b, d) {
            c(d, 1)
        }, g = d.browser.isIE() && d.browser.version.major <= 10, h = g ? e : f, i = function (a, b, c) {
            return h(a, b, c)
        };
        return {willBlock: b.constant(g), run: i}
    }),g("1o", ["2v", "2w", "g", "p", "2x", "21", "22", "2y"], function (a, b, c, d, e, f, g, h) {
        return function (i, j) {
            var k = g.create({cancel: f([]), error: f(["message"]), insert: f(["elements", "assets", "correlated"])}),
                l = e.tap(function (d) {
                    h.willBlock() && (l.control.block(), d.preventDefault());
                    var e = a.choose(i, j, d);
                    e.capture() && d.preventDefault();
                    var f = c.map(e.steps(), function (a) {
                        return a(l.control)
                    }), g = a.run(f, e.input());
                    g.get(function (a) {
                        b.cata(a, function (a) {
                            k.trigger.error(a)
                        }, function (a, b, c) {
                            k.trigger.insert(a, b, c)
                        }, function () {
                            k.trigger.cancel()
                        }, function (a, b, c, d) {
                            k.trigger.insert(a, b, c), k.trigger.error(d)
                        })
                    })
                });
            return {paste: l.instance, isBlocked: l.control.isBlocked, destroy: d.noop, events: k.registry}
        }
    }),g("2z", ["p"], function (a) {
        var b = function (a) {
            return function (b) {
                return function (c, d, e) {
                    return b.block(), a(c, d, e).map(function (a) {
                        return b.unblock(), a
                    })
                }
            }
        }, c = function (b) {
            return a.constant(b)
        };
        return {blocking: b, normal: c}
    }),g("4u", ["68", "i", "o", "2b", "n"], function (a, b, c, d, e) {
        var f = function (a) {
            return void 0 !== a.convertURL ? a.convertURL : void 0 !== a.msConvertURL ? a.msConvertURL : void 0
        }, g = function (g) {
            var h = a.resolve("window.clipboardData.files"), i = f(g);
            if (void 0 !== h && void 0 !== i && h.length > 0) {
                var j = c.mapM(h, function (a) {
                    var c = d.createObjectURL(a);
                    return i.apply(g, [a, "specified", c]), b.singleWithUrl(a, c)
                });
                return e.some(j)
            }
            return e.none()
        };
        return {convert: g}
    }),g("30", ["4u", "o", "p", "n"], function (a, b, c, d) {
        var e = function () {
            var c = d.none(), e = function (b) {
                c = a.convert(b)
            }, f = function (a) {
                return c.fold(function () {
                    return b.nu(function (a) {
                        a([])
                    })
                }, function (a) {
                    return a
                }).get(a)
            }, g = function () {
                c = d.none()
            };
            return {convert: e, listen: f, clear: g}
        }, f = function () {
            return {
                convert: d.none, listen: function (a) {
                    a([])
                }, clear: c.noop
            }
        };
        return {background: e, ignore: f}
    }),h("4v", RegExp),g("31", ["n", "23", "4v"], function (a, b, c) {
        var d = function (a) {
            return void 0 !== a && void 0 !== a.types && null !== a.types
        }, e = function (a, c) {
            return b.findMap(a, function (a) {
                return f(c, a)
            })
        }, f = function (d, e) {
            var f = new c(e, "i");
            return b.findMap(d, function (b) {
                return null !== b.match(f) ? a.some({type: b, flavor: e}) : a.none()
            })
        };
        return {isValidData: d, getPreferredFlavor: e, getFlavor: f}
    }),g("4x", ["1l", "1m"], function (a, b) {
        var c = b.generate([{none: []}, {error: ["message "]}, {blob: ["blob"]}]), d = function (a, b, c, d) {
            return a.fold(b, c, d)
        };
        return a.merge(c, {cata: d})
    }),g("78", ["3p"], function (a) {
        return function (b, c) {
            var d = a.getOrDie("Blob");
            return new d(b, c)
        }
    }),g("79", ["3p"], function (a) {
        return function (b) {
            var c = a.getOrDie("Uint8Array");
            return new c(b)
        }
    }),g("7a", ["3p"], function (a) {
        var b = function (b) {
            var c = a.getOrDie("requestAnimationFrame");
            c(b)
        }, c = function (b) {
            var c = a.getOrDie("atob");
            return c(b)
        };
        return {atob: c, requestAnimationFrame: b}
    }),g("6d", ["4x", "78", "79", "7a", "n", "2f", "37", "12", "62"], function (a, b, c, d, e, f, g, h, i) {
        var j = function (a, e) {
            for (var f = 1024, g = d.atob(a), j = g.length, k = i.ceil(j / f), l = new h(k), m = 0; m < k; ++m) {
                for (var n = m * f, o = i.min(n + f, j), p = new h(o - n), q = n, r = 0; q < o; ++r, ++q) p[r] = g[q].charCodeAt(0);
                l[m] = c(p)
            }
            return b(l, {type: e})
        }, k = function (a) {
            return g.startsWith(a, "data:image/") && a.indexOf(";base64,") > "data:image/".length
        }, l = function (b) {
            if (!k(b)) return a.none();
            var c = b.indexOf(";"), d = b.substr("data:".length, c - "data:".length),
                e = b.substr(c + ";base64,".length);
            try {
                var f = a.blob(j(e, d));
                return f
            } catch (g) {
                return a.error(g)
            }
        };
        return {convert: l}
    }),g("4w", ["6d"], function (a) {
        var b = function (b) {
            return a.convert(b)
        };
        return {toBlob: b}
    }),g("4y", ["2w", "g", "h", "p", "2c", "j", "k", "1d", "2a", "1f"], function (a, b, c, d, e, f, g, h, i, j) {
        var k = e.immutable("asset", "image"), l = function (a, e) {
            var g = [];
            return b.each(a, function (a, b) {
                c.cata(a, function (c, d, h, i) {
                    var j = e[b];
                    f.set(j, "src", h), g.push(k(a, j))
                }, d.noop)
            }), g
        }, m = function (a, e) {
            var g = [], j = b.bind(a, function (a) {
                return "img" === h.name(a) ? [a] : i.descendants(a, "img")
            });
            return b.each(e, function (a) {
                c.cata(a, function (c, d, e, h) {
                    b.each(j, function (b) {
                        f.get(b, "src") === e && g.push(k(a, b))
                    })
                }, d.noop)
            }), g
        }, n = function (d) {
            var e = [], h = [], i = [];
            return b.each(d, function (a) {
                return c.cata(a, function (b, c, d, j) {
                    var l = g.fromTag("img");
                    f.set(l, "src", d), e.push(l), h.push(a), i.push(k(a, l))
                }, function (a, b, c) {
                    j.error("Internal error: Paste operation produced an image URL instead of a Data URI: ", b)
                })
            }), a.paste(e, h, i)
        };
        return {createImages: n, findImages: m, updateSources: l}
    }),g("1y", ["g", "29", "3f"], function (a, b, c) {
        var d = function (b) {
            b.dom().textContent = "", a.each(c.children(b), function (a) {
                e(a)
            })
        }, e = function (a) {
            var b = a.dom();
            null !== b.parentNode && b.parentNode.removeChild(b)
        }, f = function (a) {
            var d = c.children(a);
            d.length > 0 && b.before(a, d), e(a)
        };
        return {empty: d, remove: e, unwrap: f}
    }),g("32", ["4w", "4x", "4q", "4y", "2w", "g", "i", "n", "2c", "j", "k", "1d", "1y", "29", "2a"], function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) {
        var p = i.immutable("blob", "image"), q = function (c, d) {
            var e = a.toBlob(d);
            return b.cata(e, h.none, h.none, function (a) {
                return h.some(p(a, c))
            })
        }, r = function (a) {
            var b = k.fromTag("div");
            return n.append(b, a), o.descendants(b, "img[src]")
        }, s = function (a) {
            return 0 === a.indexOf("data:") && a.indexOf("base64") > -1
        }, t = function (a) {
            return 0 === a.indexOf("blob:")
        }, u = function (a) {
            return s(a) || t(a)
        }, v = function (a) {
            var b = j.get(a, "src");
            return u(b)
        }, w = function (a) {
            return f.bind(r(a), function (a) {
                var b = j.get(a, "src");
                return u(b) ? q(a, b).toArray() : []
            })
        }, x = function (a) {
            var b = f.filter(a, function (a) {
                return "img" !== l.name(a) || !v(a)
            });
            return e.incomplete(b, [], [], "errors.local.images.disallowed")
        };
        return function (a) {
            return function (b, h) {
                return c.sync(function (b) {
                    var i = function () {
                        c.call(b, {response: h.response(), bundle: h.bundle()})
                    }, j = function (a) {
                        var i = w(a), j = f.map(i, function (a) {
                            return a.blob()
                        });
                        g.multiple(j).get(function (g) {
                            var j = f.map(i, function (a) {
                                return a.image()
                            }), k = d.updateSources(g, j);
                            c.call(b, {response: e.paste(a, g, k), bundle: h.bundle()})
                        })
                    }, k = function (a) {
                        var d = f.filter(r(a), v);
                        f.each(d, m.remove), c.call(b, {
                            response: d.length > 0 ? x(a) : h.response(),
                            bundle: h.bundle()
                        })
                    }, l = function (b, c, d, e) {
                        a.allowLocalImages === !1 ? k(b) : 0 === c.length ? j(b) : i()
                    };
                    e.cata(h.response(), i, l, i, l)
                })
            }
        }
    }),g("4z", ["4q", "2w", "o", "1f"], function (a, b, c, d) {
        var e = function (c) {
            var e = function (e, f) {
                return c.proxyBin().fold(function () {
                    return d.error(e), a.pure({response: b.cancel(), bundle: {}})
                }, f)
            };
            return {handle: e}
        }, f = function (a) {
            return c.nu(function (b) {
                a.backgroundAssets().fold(function () {
                    b([])
                }, function (a) {
                    a.listen(b)
                })
            })
        }, g = function (a) {
            var b = j(a);
            return b && h(a) || !b && i(a)
        }, h = function (a) {
            return a.officeStyles().getOr(!0)
        }, i = function (a) {
            return a.htmlStyles().getOr(!1)
        }, j = function (a) {
            return a.isWord().getOr(!1)
        }, k = function (a) {
            return a.isInternal().getOr(!1)
        };
        return {proxyBin: e, backgroundAssets: f, merging: g, mergeOffice: h, mergeNormal: i, isWord: j, isInternal: k}
    }),g("5c", ["3g"], function (a) {
        var b = a.create("ephox-cement");
        return {resolve: b.resolve}
    }),g("50", ["5c", "1l", "p", "n", "27", "k", "28", "1x", "29"], function (a, b, c, d, e, f, g, h, i) {
        return function (j, k) {
            var l = k.translations, m = function (a, c, e) {
                e(d.some(b.merge(c, {officeStyles: a, htmlStyles: a})))
            }, n = function (b, c) {
                var k = function () {
                    t(), m(!1, b, c)
                }, n = function () {
                    t(), m(!0, b, c)
                }, o = f.fromTag("div");
                e.add(o, a.resolve("styles-dialog-content"));
                var p = f.fromTag("p"), q = g.fromHtml(l("cement.dialog.paste.instructions"));
                i.append(p, q), h.append(o, p);
                var r = {
                    text: l("cement.dialog.paste.clean"),
                    tabindex: 0,
                    className: a.resolve("clean-styles"),
                    click: k
                }, s = {
                    text: l("cement.dialog.paste.merge"),
                    tabindex: 1,
                    className: a.resolve("merge-styles"),
                    click: n
                }, t = function () {
                    v.destroy()
                }, u = function () {
                    c(d.none()), t()
                }, v = j(!0);
                v.setTitle(l("cement.dialog.paste.title")), v.setContent(o), v.setButtons([r, s]), v.show(), v.events.close.bind(u)
            }, o = function (a, b) {
                var c = a ? "officeStyles" : "htmlStyles", d = k[c];
                "clean" === d ? m(!1, k, b) : "merge" === d ? m(!0, k, b) : n(k, b)
            };
            return {get: o, destroy: c.noop}
        }
    }),g("33", ["4q", "4r", "4z", "50", "2w"], function (a, b, c, d, e) {
        var f = function (f, g) {
            var h = d(f, g);
            return function (d, f) {
                var g = f.bundle(), i = f.response();
                return a.sync(function (d) {
                    h.get(c.isWord(g), function (c) {
                        var g = c.fold(function () {
                            return {response: e.cancel(), bundle: f.bundle()}
                        }, function (a) {
                            return {response: i, bundle: b.nu({officeStyles: a.officeStyles, htmlStyles: a.htmlStyles})}
                        });
                        a.call(d, g)
                    })
                })
            }
        }, g = function (d, e) {
            return function (g, h) {
                return c.isInternal(h.bundle()) ? a.pure({
                    response: h.response(),
                    bundle: b.nu({officeStyles: !0, htmlStyles: !0})
                }) : f(d, e)(g, h)
            }
        }, h = function (c, d) {
            return function (e, f) {
                return a.pure({response: f.response(), bundle: b.nu({officeStyles: c, htmlStyles: d})})
            }
        };
        return {fixed: h, fromConfig: f, fromConfigIfExternal: g}
    }),g("7r", ["2t", "p", "k", "1g"], function (a, b, c, d) {
        var e = function (a) {
                for (var b = []; null !== a.nextNode();) b.push(c.fromDom(a.currentNode));
                return b
            }, f = function (a) {
                try {
                    return e(a)
                } catch (b) {
                    return []
                }
            }, g = a.detect().browser, h = g.isIE() || g.isSpartan() ? f : e, i = b.constant(b.constant(!0)),
            j = function (a, b) {
                var c = b.fold(i, function (a) {
                    return function (b) {
                        return a(b.nodeValue)
                    }
                });
                c.acceptNode = c;
                var e = d.createTreeWalker(a.dom(), NodeFilter.SHOW_COMMENT, c, !1);
                return h(e)
            };
        return {find: j}
    }),g("7b", ["n", "7r", "37", "1g"], function (a, b, c, d) {
        var e = function (d) {
            return b.find(d, a.some(function (a) {
                return c.startsWith(a, "[if gte vml 1]")
            }))
        };
        return {find: e}
    }),g("6q", [], function () {
        var a = function (a) {
            return void 0 !== a.style
        };
        return {isSupported: a}
    }),h("11", window),g("5d", ["1b", "g", "1c", "n", "j", "5i", "k", "1d", "6q", "37", "1e", "1f", "11"], function (a, b, c, d, e, f, g, h, i, j, k, l, m) {
        var n = function (b, c, d) {
            if (!a.isString(d)) throw l.error("Invalid call to CSS.set. Property ", c, ":: Value ", d, ":: Element ", b), new k("CSS value must be a string: " + d);
            i.isSupported(b) && b.style.setProperty(c, d)
        }, o = function (a, b) {
            i.isSupported(a) && a.style.removeProperty(b)
        }, p = function (a, b, c) {
            var d = a.dom();
            n(d, b, c)
        }, q = function (a, b) {
            var d = a.dom();
            c.each(b, function (a, b) {
                n(d, b, a)
            })
        }, r = function (a, b) {
            var d = a.dom();
            c.each(b, function (a, b) {
                a.fold(function () {
                    o(d, b)
                }, function (a) {
                    n(d, b, a)
                })
            })
        }, s = function (a, b) {
            var c = a.dom(), d = m.getComputedStyle(c), e = d.getPropertyValue(b),
                g = "" !== e || f.inBody(a) ? e : t(c, b);
            return null === g ? void 0 : g
        }, t = function (a, b) {
            return i.isSupported(a) ? a.style.getPropertyValue(b) : ""
        }, u = function (a, b) {
            var c = a.dom(), e = t(c, b);
            return d.from(e).filter(function (a) {
                return a.length > 0
            })
        }, v = function (a, b, c) {
            var d = g.fromTag(a);
            p(d, b, c);
            var e = u(d, b);
            return e.isSome()
        }, w = function (a, b) {
            var c = a.dom();
            o(c, b), e.has(a, "style") && "" === j.trim(e.get(a, "style")) && e.remove(a, "style")
        }, x = function (a, b) {
            var c = e.get(a, "style"), d = b(a), f = void 0 === c ? e.remove : e.set;
            return f(a, "style", c), d
        }, y = function (a, b) {
            var c = a.dom(), d = b.dom();
            i.isSupported(c) && i.isSupported(d) && (d.style.cssText = c.style.cssText)
        }, z = function (a) {
            return a.dom().offsetWidth
        }, A = function (a, b, c) {
            u(a, c).each(function (a) {
                u(b, c).isNone() && p(b, c, a)
            })
        }, B = function (a, c, d) {
            h.isElement(a) && h.isElement(c) && b.each(d, function (b) {
                A(a, c, b)
            })
        };
        return {
            copy: y,
            set: p,
            preserve: x,
            setAll: q,
            setOptions: r,
            remove: w,
            get: s,
            getRaw: u,
            isValidValue: v,
            reflow: z,
            transfer: B
        }
    }),g("6r", ["1b", "g", "p", "n", "5i", "3n", "k", "2i"], function (a, b, c, d, e, f, g, h) {
        var i = function (a) {
            return n(e.body(), a)
        }, j = function (b, e, f) {
            for (var h = b.dom(), i = a.isFunction(f) ? f : c.constant(!1); h.parentNode;) {
                h = h.parentNode;
                var j = g.fromDom(h);
                if (e(j)) return d.some(j);
                if (i(j)) break
            }
            return d.none()
        }, k = function (a, b, c) {
            var d = function (a) {
                return b(a)
            };
            return h(d, j, a, b, c)
        }, l = function (a, b) {
            var c = a.dom();
            return c.parentNode ? m(g.fromDom(c.parentNode), function (c) {
                return !f.eq(a, c) && b(c)
            }) : d.none()
        }, m = function (a, e) {
            var f = b.find(a.dom().childNodes, c.compose(e, g.fromDom));
            return d.from(f).map(g.fromDom)
        }, n = function (a, b) {
            var c = function (a) {
                for (var e = 0; e < a.childNodes.length; e++) {
                    if (b(g.fromDom(a.childNodes[e]))) return d.some(g.fromDom(a.childNodes[e]));
                    var f = c(a.childNodes[e]);
                    if (f.isSome()) return f
                }
                return d.none()
            };
            return c(a.dom())
        };
        return {first: i, ancestor: j, closest: k, sibling: l, child: m, descendant: n}
    }),g("6s", ["j", "k", "1x", "29", "1y", "3f"], function (a, b, c, d, e, f) {
        var g = function (a, c) {
            return b.fromDom(a.dom().cloneNode(c))
        }, h = function (a) {
            return g(a, !1)
        }, i = function (a) {
            return g(a, !0)
        }, j = function (c, d) {
            var e = b.fromTag(d), f = a.clone(c);
            return a.setAll(e, f), e
        }, k = function (a, b) {
            var c = j(a, b), e = f.children(i(a));
            return d.append(c, e), c
        }, l = function (a, b) {
            var g = j(a, b);
            c.before(a, g);
            var h = f.children(a);
            return d.append(g, h), e.remove(a), g
        };
        return {shallow: h, shallowAs: j, deep: i, copy: k, mutate: l}
    }),g("5a", ["n", "j", "27", "5d", "k", "1d", "6r", "6s", "2a", "37"], function (a, b, c, d, e, f, g, h, i, j) {
        var k = function (a, b) {
            var c = f.value(a), d = e.fromTag("div"), h = c.indexOf("]>");
            return d.dom().innerHTML = c.substr(h + "]>".length), g.descendant(d, function (a) {
                return f.name(a) === b
            })
        }, l = function (b) {
            return f.isComment(b) ? k(b, "v:shape") : a.none()
        }, m = function (a) {
            return l(a).map(function (a) {
                var f = b.get(a, "o:spid"), g = void 0 === f ? b.get(a, "id") : f, h = e.fromTag("img");
                return c.add(h, "rtf-data-image"), b.set(h, "data-image-id", g.substr("_x0000_".length)), b.set(h, "data-image-type", "code"), d.setAll(h, {
                    width: d.get(a, "width"),
                    height: d.get(a, "height")
                }), h
            })
        }, n = function (d) {
            if ("img" === f.name(d)) {
                var e = b.get(d, "src");
                if (void 0 !== e && null !== e && j.startsWith(e, "file://")) {
                    var g = h.shallow(d), i = e.split(/[\/\\]/), k = i[i.length - 1];
                    return b.set(g, "data-image-id", k), b.remove(g, "src"), b.set(g, "data-image-type", "local"), c.add(g, "rtf-data-image"), a.some(g)
                }
                return a.none()
            }
            return a.none()
        }, o = function (a) {
            return p(a).length > 0
        }, p = function (a) {
            return i.descendants(a, ".rtf-data-image")
        };
        return {local: n, vshape: m, find: p, exists: o, scour: l}
    }),g("6e", ["7b", "g", "5a", "n", "23", "2c", "j", "28", "2a", "1f"], function (a, b, c, d, e, f, g, h, i, j) {
        var k = f.immutable("img", "vshape"), l = function (a) {
            var b = n(a);
            return b._rawElement = a.dom(), b
        }, m = function (a) {
            var b = n(a);
            return b._rawElement = a.dom(), b
        }, n = function (a) {
            return g.clone(a)
        }, o = function (d) {
            var f = h.fromHtml(d), g = b.bind(f, function (a) {
                return i.descendants(a, "img")
            }), j = b.bind(f, a.find), k = e.cat(b.map(j, c.scour)), l = b.map(g, function (a) {
                return p(a, k)
            });
            return e.cat(l)
        }, p = function (a, c) {
            var e = g.get(a, "v:shapes"), f = d.from(b.find(c, function (a) {
                return g.get(a, "id") === e
            }));
            return f.isNone() && j.log("WARNING: unable to find data for image", a.dom()), f.map(function (b) {
                return q(a, b)
            })
        }, q = function (a, b) {
            return k(l(a), m(b))
        };
        return {extract: o}
    }),g("7c", ["1b", "g", "p", "n", "j", "27"], function (a, b, c, d, e, f) {
        var g = function (b, c) {
            var d = c.style;
            if (e.has(b, "width") && e.has(b, "height") && a.isString(d)) {
                var f = d.match(/rotation:([^;]*)/);
                null === f || "90" !== f[1] && "-90" !== f[1] || e.setAll(b, {
                    width: e.get(b, "height"),
                    height: e.get(b, "width")
                })
            }
        }, h = function (a, b) {
            var c = b["o:spid"], d = void 0 === c ? b.id : c;
            g(a, b), f.add(a, "rtf-data-image"), e.set(a, "data-image-id", d.substr("_x0000_".length)), e.set(a, "data-image-type", "code")
        }, i = function (a, b, c) {
            return c.img()[a] === b
        }, j = function (a, f, g) {
            var h = e.get(f, g), j = c.curry(i, g, h), k = b.find(a, j);
            return d.from(k).map(function (a) {
                return e.remove(f, g), a
            })
        }, k = function (a, c, d) {
            b.each(c, function (b) {
                j(a, b, d).each(function (a) {
                    h(b, a.vshape())
                })
            })
        };
        return {rotateImage: g, insertRtfCorrelation: k}
    }),g("7s", ["2t", "n", "1e"], function (a, b, c) {
        return function (d, e) {
            var f = function (a) {
                if (!d(a)) throw new c("Can only get " + e + " value of a " + e + " node");
                return j(a).getOr("")
            }, g = function (a) {
                try {
                    return h(a)
                } catch (c) {
                    return b.none()
                }
            }, h = function (a) {
                return d(a) ? b.from(a.dom().nodeValue) : b.none()
            }, i = a.detect().browser, j = i.isIE() && 10 === i.version.major ? g : h, k = function (a, b) {
                if (!d(a)) throw new c("Can only set raw " + e + " value of a " + e + " node");
                a.dom().nodeValue = b
            };
            return {get: f, getOption: j, set: k}
        }
    }),g("7d", ["1d", "7s"], function (a, b) {
        var c = b(a.isComment, "comment"), d = function (a) {
            return c.get(a)
        }, e = function (a) {
            return c.getOption(a)
        }, f = function (a, b) {
            c.set(a, b)
        };
        return {get: d, getOption: e, set: f}
    }),g("7t", ["1x"], function (a) {
        var b = function (b, c, d) {
            b.dom().styleSheet ? b.dom().styleSheet.cssText = c : a.append(b, d)
        };
        return {setCss: b}
    }),g("8f", [], function () {
        var a = function (a) {
            return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
        };
        return {escape: a}
    }),g("7u", ["1c", "8f", "4v"], function (a, b, c) {
        var d = function (a, d, e) {
            var f = new c("url\\(\\s*['\"]?" + b.escape(d) + "(.*?)['\"]?\\s*\\)", "g");
            return a.replace(f, 'url("' + e + '$1")')
        }, e = function (b, c) {
            var e = b;
            return a.each(c, function (a, b) {
                e = d(e, b, a)
            }), e
        };
        return {replace: d, replaceMany: e}
    }),g("7e", ["j", "k", "1x", "20", "7t", "7u", "12"], function (a, b, c, d, e, f, g) {
        var h = function (c) {
            var d = b.fromTag("style", c.dom());
            return a.set(d, "type", "text/css"), d
        }, i = function (a, c, d) {
            e.setCss(a, c, b.fromText(c, d.dom()))
        }, j = function (a, b, e) {
            var g = h(e), j = void 0 === b ? a : f.replaceMany(a, b);
            i(g, j, e);
            var k = d.descendant(e, "head").getOrDie();
            c.append(k, g)
        }, k = function (a) {
            var b = a.dom().styleSheets;
            return g.prototype.slice.call(b)
        };
        return {stylesheets: k, inject: j}
    }),g("7v", ["g", "2c"], function (a, b) {
        var c = b.immutable("selector", "style", "raw"), d = function (b) {
            var d = b.cssRules;
            return a.map(d, function (a) {
                var b = a.selectorText, d = a.style.cssText;
                if (void 0 === d) throw"WARNING: Browser does not support cssText property";
                return c(b, d, a.style)
            })
        }, e = function (b) {
            return a.bind(b, d)
        };
        return {extract: d, extractAll: e}
    }),g("7f", ["7v"], function (a) {
        var b = function (b) {
            return a.extract(b)
        }, c = function (b) {
            return a.extractAll(b)
        };
        return {extract: b, extractAll: c}
    }),function (a, b, c) {
        a("7g", [], function () {
            var a = function () {
                var a, b, c;
                return a = function (a) {
                    var c, d, e, f, g = [];
                    for (c = a.split(","), e = 0, f = c.length; e < f; e += 1) d = c[e], d.length > 0 && g.push(b(d));
                    return g
                }, b = function (a) {
                    var b, c = a, d = {a: 0, b: 0, c: 0}, e = [], f = /(\[[^\]]+\])/g, g = /(#[^\s\+>~\.\[:]+)/g,
                        h = /(\.[^\s\+>~\.\[:]+)/g,
                        i = /(::[^\s\+>~\.\[:]+|:first-line|:first-letter|:before|:after)/gi,
                        j = /(:[\w-]+\([^\)]*\))/gi, k = /(:[^\s\+>~\.\[:]+)/g, l = /([^\s\+>~\.\[:]+)/g;
                    return b = function (b, f) {
                        var g, h, i, j, k, l;
                        if (b.test(c)) for (g = c.match(b), h = 0, i = g.length; h < i; h += 1) d[f] += 1, j = g[h], k = c.indexOf(j), l = j.length, e.push({
                            selector: a.substr(k, l),
                            type: f,
                            index: k,
                            length: l
                        }), c = c.replace(j, Array(l + 1).join(" "))
                    }, function () {
                        var a = function (a) {
                            var b, d, e, f;
                            if (a.test(c)) for (b = c.match(a), d = 0, e = b.length; d < e; d += 1) f = b[d], c = c.replace(f, Array(f.length + 1).join("A"))
                        }, b = /\\[0-9A-Fa-f]{6}\s?/g, d = /\\[0-9A-Fa-f]{1,5}\s/g, e = /\\./g;
                        a(b), a(d), a(e)
                    }(), function () {
                        var a = /:not\(([^\)]*)\)/g;
                        a.test(c) && (c = c.replace(a, "     $1 "))
                    }(), function () {
                        var a, b, d, e, f = new RegExp("{[^]*", "gm");
                        if (f.test(c)) for (a = c.match(f), b = 0, d = a.length; b < d; b += 1) e = a[b], c = c.replace(e, Array(e.length + 1).join(" "))
                    }(), b(f, "b"), b(g, "a"), b(h, "b"), b(i, "c"), b(j, "b"), b(k, "b"), c = c.replace(/[\*\s\+>~]/g, " "), c = c.replace(/[#\.]/g, " "), b(l, "c"), e.sort(function (a, b) {
                        return a.index - b.index
                    }), {
                        selector: a,
                        specificity: "0," + d.a.toString() + "," + d.b.toString() + "," + d.c.toString(),
                        specificityArray: [0, d.a, d.b, d.c],
                        parts: e
                    }
                }, c = function (a, c) {
                    var d, e, f;
                    if ("string" == typeof a) {
                        if (a.indexOf(",") !== -1) throw"Invalid CSS selector";
                        d = b(a).specificityArray
                    } else {
                        if (!Array.isArray(a)) throw"Invalid CSS selector or specificity array";
                        if (4 !== a.filter(function (a) {
                            return "number" == typeof a
                        }).length) throw"Invalid specificity array";
                        d = a
                    }
                    if ("string" == typeof c) {
                        if (c.indexOf(",") !== -1) throw"Invalid CSS selector";
                        e = b(c).specificityArray
                    } else {
                        if (!Array.isArray(c)) throw"Invalid CSS selector or specificity array";
                        if (4 !== c.filter(function (a) {
                            return "number" == typeof a
                        }).length) throw"Invalid specificity array";
                        e = c
                    }
                    for (f = 0; f < 4; f += 1) {
                        if (d[f] < e[f]) return -1;
                        if (d[f] > e[f]) return 1
                    }
                    return 0
                }, {calculate: a, compare: c}
            }();
            return "undefined" != typeof exports && (exports.calculate = a.calculate, exports.compare = a.compare), a
        })
    }(f.bolt.module.api.define, f.bolt.module.api.require, f.bolt.module.api.demand),g("6f", ["7c", "g", "p", "2c", "j", "7d", "5d", "1y", "2a", "3f", "7e", "7f", "7g"], function (a, b, c, d, e, f, g, h, i, j, k, l, m) {
        var n = d.immutable("selector", "raw"), o = function (b, c, d, e, f) {
            var g = i.descendants(c, "img");
            t(c), a.insertRtfCorrelation(d, g, e);
            var h = f.mergeInline() ? s : p;
            h(b, c)
        }, p = c.noop, q = function (a, c) {
            var d = {};
            return b.each(a, function (e) {
                if (void 0 !== a[e]) {
                    var f = c.dom().style;
                    b.contains(f, e) || (d[e] = a[e])
                }
            }), d
        }, r = function (a, c) {
            var d = b.bind(c, function (c) {
                var d = i.descendants(a, c.selector());
                return b.each(d, function (a) {
                    var b = q(c.raw(), a);
                    g.setAll(a, b)
                }), d
            });
            b.each(d, function (a) {
                e.remove(a, "class")
            })
        }, s = function (a, c) {
            var d = k.stylesheets(a), e = l.extractAll(d), f = function (a) {
                return a.selector().indexOf(",") !== -1
            }, g = function (a) {
                return !f(a)
            }, h = function (a) {
                var c = a.selector().split(",");
                return b.map(c, function (b) {
                    var c = b.trim();
                    return n(c, a.raw())
                })
            }, i = b.flatten(b.map(b.filter(e, f), h)), j = b.filter(e, g), o = j.concat(i);
            o.sort(function (a, b) {
                return m.compare(a.selector(), b.selector())
            }).reverse(), r(c, o)
        }, t = function (a) {
            var c = j.children(a);
            b.each(c, function (a) {
                f.getOption(a).each(function (b) {
                    "StartFragment" !== b && "EndFragment" !== b || h.remove(a)
                })
            })
        };
        return {doMergeInlineStyles: r, process: o}
    }),g("71", ["n", "k"], function (a, b) {
        var c = function (c) {
            var d = c.dom();
            try {
                var e = d.contentWindow ? d.contentWindow.document : d.contentDocument;
                return void 0 !== e && null !== e ? a.some(b.fromDom(e)) : a.none()
            } catch (f) {
                return console.log("Error reading iframe: ", d), console.log("Error was: " + f), a.none()
            }
        }, d = function (a) {
            var b = c(a);
            return b.fold(function () {
                return a
            }, function (a) {
                return a
            })
        };
        return {doc: d}
    }),g("5x", ["71", "5i"], function (a, b) {
        var c = function (c, d) {
            if (!b.inBody(c)) throw"Internal error: attempted to write to an iframe that is not in the DOM";
            var e = a.doc(c), f = e.dom();
            f.open(), f.writeln(d), f.close()
        };
        return {write: c}
    }),g("25", ["p", "k"], function (a, b) {
        var c = function (b, c, d, e, f, g, h) {
            return {
                target: a.constant(b),
                x: a.constant(c),
                y: a.constant(d),
                stop: e,
                prevent: f,
                kill: g,
                raw: a.constant(h)
            }
        }, d = function (d, e) {
            return function (f) {
                if (d(f)) {
                    var g = b.fromDom(f.target), h = function () {
                        f.stopPropagation()
                    }, i = function () {
                        f.preventDefault()
                    }, j = a.compose(i, h), k = c(g, f.clientX, f.clientY, h, i, j, f);
                    e(k)
                }
            }
        }, e = function (b, c, e, f, g) {
            var i = d(e, f);
            return b.dom().addEventListener(c, i, g), {unbind: a.curry(h, b, c, i, g)}
        }, f = function (a, b, c, d) {
            return e(a, b, c, d, !1)
        }, g = function (a, b, c, d) {
            return e(a, b, c, d, !0)
        }, h = function (a, b, c, d) {
            a.dom().removeEventListener(b, c, d)
        };
        return {bind: f, capture: g}
    }),g("w", ["p", "25"], function (a, b) {
        var c = a.constant(!0), d = function (a, d, e) {
            return b.bind(a, d, c, e)
        }, e = function (a, d, e) {
            return b.capture(a, d, c, e)
        };
        return {bind: d, capture: e}
    }),g("6g", ["p", "5x", "5d", "w", "k", "1x", "1y", "x"], function (a, b, c, d, e, f, g, h) {
        return function (i) {
            var j = function (j, k, l) {
                var m = e.fromTag("div"), n = e.fromTag("iframe");
                c.setAll(m, {display: "none"});
                var o = d.bind(n, "load", function () {
                    o.unbind(), b.write(n, j);
                    var c = n.dom().contentWindow.document;
                    if (void 0 === c) throw"sandbox iframe load event did not fire correctly";
                    var d = e.fromDom(c), f = c.body;
                    if (void 0 === f) throw"sandbox iframe does not have a body";
                    var i = e.fromDom(f), p = k(d, i);
                    g.remove(m), h(a.curry(l, p), 0)
                });
                f.append(m, n), f.append(i, m)
            };
            return {play: j}
        }
    }),g("6h", ["k", "28", "1x", "29", "1y", "3f"], function (a, b, c, d, e, f) {
        var g = function (a) {
            return a.dom().innerHTML
        }, h = function (g, h) {
            var i = f.owner(g), j = i.dom(), k = a.fromDom(j.createDocumentFragment()), l = b.fromHtml(h, j);
            d.append(k, l), e.empty(g), c.append(g, k)
        }, i = function (b) {
            var d = a.fromTag("div"), e = a.fromDom(b.dom().cloneNode(!0));
            return c.append(d, e), g(d)
        };
        return {get: g, set: h, getOuter: i}
    }),g("51", ["4q", "4r", "6e", "6f", "2w", "p", "6g", "k", "28", "6h", "1g"], function (a, b, c, d, e, f, g, h, i, j, k) {
        var l = "data-textbox-image", m = function (a) {
            return void 0 === a || null === a || 0 === a.length
        }, n = function (a) {
            var b = 1;
            return a.replace(/(<img[^>]*)src=".*?"/g, function (a, c, d) {
                return c + l + '="' + b++ + '"'
            })
        }, o = function (a, b) {
            var c = g(h.fromDom(k.body));
            return function (e, g) {
                c.play(e, function (c, e) {
                    return d.process(c, e, a, l, {mergeInline: f.constant(b)}), j.get(e)
                }, g)
            }
        }, p = function (d, f, g) {
            return a.sync(function (h) {
                var j = c.extract(d), k = o(j, f);
                k(g, function (c) {
                    var d = i.fromHtml(c);
                    a.call(h, {response: e.paste(d, [], []), bundle: b.nu({})})
                })
            })
        }, q = function () {
            return a.pure({response: e.paste([], [], []), bundle: b.nu({})})
        }, r = function (a) {
            var b = a.indexOf("</html>");
            return b > -1 ? a.substr(0, b + "</html>".length) : a
        }, s = function (b, c, d) {
            var f = r(b.data()), g = n(f);
            return d.cleanDocument(g, c).fold(function () {
                return a.pure({response: e.error("errors.paste.word.notready"), bundle: {}})
            }, function (a) {
                return m(a) ? q() : p(g, c, a)
            })
        };
        return {handle: s}
    }),g("52", ["4q", "4r", "4y", "g", "i"], function (a, b, c, d, e) {
        var f = function (f) {
            var g = d.filter(f, function (a) {
                return "file" === a.kind && /image/.test(a.type)
            }), h = d.map(g, function (a) {
                return a.getAsFile()
            });
            return a.sync(function (d) {
                e.multiple(h).get(function (e) {
                    var f = c.createImages(e);
                    a.call(d, {response: f, bundle: b.nu({})})
                })
            })
        };
        return {handle: f}
    }),g("7w", [], function () {
        return {
            validStyles: function () {
                return /^(mso-.*|tab-stops|tab-interval|language|text-underline|text-effect|text-line-through|font-color|horiz-align|list-image-[0-9]+|separator-image|table-border-color-(dark|light)|vert-align|vnd\..*)$/
            }, specialInline: function () {
                return /^(font|em|strong|samp|acronym|cite|code|dfn|kbd|tt|b|i|u|s|sub|sup|ins|del|var|span)$/
            }
        }
    }),g("83", [], function () {
        var a = function (a) {
            return g(function (b, c, d, e, f, g) {
                return b(a)
            })
        }, b = function (a) {
            return g(function (b, c, d, e, f, g) {
                return c(a)
            })
        }, c = function (a) {
            return g(function (b, c, d, e, f, g) {
                return d(a)
            })
        }, d = function (a) {
            return g(function (b, c, d, e, f, g) {
                return e(a)
            })
        }, e = function () {
            return g(function (a, b, c, d, e, f) {
                return e()
            })
        }, f = function (a) {
            return g(function (b, c, d, e, f, g) {
                return g(a)
            })
        }, g = function (a) {
            var b = function (b) {
                return a(function (a) {
                    return 0 === b.toLowerCase().indexOf(a.toLowerCase())
                }, function (a) {
                    return a.test(b.toLowerCase())
                }, function (a) {
                    return b.toLowerCase().indexOf(a.toLowerCase()) >= 0
                }, function (a) {
                    return b.toLowerCase() === a.toLowerCase()
                }, function () {
                    return !0
                }, function (a) {
                    return !a.matches(b)
                })
            };
            return {fold: a, matches: b}
        }, h = function (a, b, c, d, e, f, g) {
            return a.fold(b, c, d, e, f, g)
        };
        return {starts: a, pattern: b, contains: c, exact: d, all: e, not: f, cata: h}
    }),g("7x", ["p", "1d", "83"], function (a, b, c) {
        var d = function (b, d, e, f) {
            var g = f.name, h = void 0 !== f.condition ? f.condition : a.constant(!0),
                i = void 0 !== f.value ? f.value : c.all();
            return g.matches(e) && i.matches(d) && h(b)
        }, e = function (c, d) {
            var e = b.name(c), f = d.name, g = void 0 !== d.condition ? d.condition : a.constant(!0);
            return f.matches(e) && g(c)
        };
        return {keyval: d, name: e}
    }),g("8g", ["g", "1c", "p", "j"], function (a, b, c, d) {
        var e = function (b, c) {
            var d = {};
            return a.each(b.dom().attributes, function (a) {
                c(a.value, a.name) || (d[a.name] = a.value)
            }), d
        }, f = function (c, e, f) {
            a.each(e, function (a) {
                d.remove(c, a)
            }), b.each(f, function (a, b) {
                d.set(c, b, a)
            })
        }, g = function (c, d, e) {
            var g = a.map(c.dom().attributes, function (a) {
                return a.name
            });
            b.size(d) !== g.length && f(c, g, d)
        };
        return {filter: e, clobber: g, scan: c.constant({})}
    }),g("8h", ["g", "1c", "j", "5d", "37"], function (a, b, c, d, e) {
        var f = function (b) {
            var c = {}, d = void 0 !== b && null !== b ? b.split(";") : [];
            return a.each(d, function (a) {
                var b = a.split(":");
                2 === b.length && (c[e.trim(b[0])] = e.trim(b[1]))
            }), c
        }, g = function (a, b) {
            return a.dom().style.getPropertyValue(b)
        }, h = function (b, c) {
            var d = b.dom().style, e = void 0 === d ? [] : d, f = {};
            return a.each(e, function (a) {
                var d = g(b, a);
                c(d, a) || (f[a] = d)
            }), f
        }, i = function (a, b, c) {
            d.set(a, b, c)
        }, j = function (b, c, d) {
            var e = b.dom().getAttribute("style"), g = f(e), h = {};
            return a.each(c, function (a) {
                var b = g[a];
                void 0 === b || d(b, a) || (h[a] = b)
            }), h
        }, k = function (c) {
            var d = b.keys(c);
            return a.map(d, function (a) {
                return a + ": " + c[a]
            }).join("; ")
        }, l = function (a, d, e) {
            c.set(a, "style", "");
            var f = b.size(d), g = b.size(e);
            if (0 === f && 0 === g) c.remove(a, "style"); else if (0 === f) c.set(a, "style", k(e)); else {
                b.each(d, function (b, c) {
                    i(a, c, b)
                });
                var h = c.get(a, "style"), j = g > 0 ? k(e) + "; " : "";
                c.set(a, "style", j + h)
            }
        };
        return {filter: h, clobber: l, scan: j}
    }),g("7y", ["8g", "8h", "p", "k"], function (a, b, c, d) {
        var e = ["mso-list"], f = function (a, c) {
            var d = b.scan(a, e, c), f = b.filter(a, c);
            b.clobber(a, f, d)
        }, g = function (b, c) {
            var d = a.filter(b, c);
            a.clobber(b, d, {})
        }, h = function (a) {
            var d = b.filter(a, c.constant(!1));
            b.clobber(a, d, {})
        }, i = function (a, b) {
            f(d.fromDom(a), b)
        }, j = function (a, b) {
            g(d.fromDom(a), b)
        };
        return {style: f, attribute: g, styleDom: i, attributeDom: j, validateStyles: h}
    }),g("7i", ["g", "1l", "7x", "7y", "p", "j", "27", "3q", "1y", "2a"], function (a, b, c, d, e, f, g, h, i, j) {
        var k = function (b, d, e) {
            b(e, function (b, f) {
                return a.exists(d, function (a) {
                    return c.keyval(e, b, f, a)
                })
            })
        }, l = function (l, m) {
            var n = b.merge({styles: [], attributes: [], classes: [], tags: []}, m), o = j.descendants(l, "*");
            a.each(o, function (b) {
                k(d.style, n.styles, b), k(d.attribute, n.attributes, b), a.each(n.classes, function (c) {
                    var d = f.has(b, "class") ? h.get(b) : [];
                    a.each(d, function (a) {
                        c.name.matches(a) && g.remove(b, a)
                    })
                })
            });
            var p = j.descendants(l, "*");
            a.each(p, function (b) {
                var d = a.exists(n.tags, e.curry(c.name, b));
                d && i.remove(b)
            })
        }, m = function (d, f) {
            var g = b.merge({tags: []}, f), h = j.descendants(d, "*");
            a.each(h, function (b) {
                var d = a.exists(g.tags, e.curry(c.name, b));
                d && i.unwrap(b)
            })
        }, n = function (d, f) {
            var g = b.merge({tags: []}, f), h = j.descendants(d, "*");
            a.each(h, function (b) {
                var d = a.find(g.tags, e.curry(c.name, b));
                void 0 !== d && null !== d && d.mutate(b)
            })
        }, o = function (b) {
            var c = j.descendants(b, "*");
            a.each(c, function (a) {
                d.validateStyles(a)
            })
        };
        return {remover: l, unwrapper: m, transformer: n, validator: o}
    }),g("86", ["1c", "5d", "k"], function (a, b, c) {
        var d = "startElement", e = "endElement", f = "text", g = "comment", h = function (a, h, i) {
            var j, k, l, m = c.fromDom(a);
            switch (a.nodeType) {
                case 1:
                    h ? j = e : (j = d, b.setAll(m, i || {})), k = "HTML" !== a.scopeName && a.scopeName && a.tagName && a.tagName.indexOf(":") <= 0 ? (a.scopeName + ":" + a.tagName).toUpperCase() : a.tagName;
                    break;
                case 3:
                    j = f, l = a.nodeValue;
                    break;
                case 8:
                    j = g, l = a.nodeValue;
                    break;
                default:
                    console.log("WARNING: Unsupported node type encountered: " + a.nodeType)
            }
            var n = function () {
                return a
            }, o = function () {
                return k
            }, p = function () {
                return j
            }, q = function () {
                return l
            };
            return {getNode: n, tag: o, type: p, text: q}
        }, i = function (b, c, d, e) {
            var f = e.createElement(b);
            return a.each(c, function (a, b) {
                f.setAttribute(b, a)
            }), h(f, !1, d)
        }, j = function (a, b) {
            return h(b.createElement(a), !0)
        }, k = function (a, b) {
            return h(b.createComment(a), !1)
        }, l = function (a, b) {
            return h(b.createTextNode(a))
        }, m = j("HTML", window.document);
        return {
            START_ELEMENT_TYPE: d,
            END_ELEMENT_TYPE: e,
            TEXT_TYPE: f,
            COMMENT_TYPE: g,
            FINISHED: m,
            token: h,
            createStartElement: i,
            createEndElement: j,
            createComment: k,
            createText: l
        }
    }),g("7z", ["86"], function (a) {
        var b = function (b) {
            var c = b.createDocumentFragment(), d = c, e = function (a) {
                g(a), c = a
            }, f = function () {
                c = c.parentNode, null === c && (c = d)
            }, g = function (a) {
                c.appendChild(a)
            }, h = function (c) {
                var d = function (a) {
                    var b = a.getNode().cloneNode(!1);
                    e(b)
                }, h = function (a, c) {
                    var d = b.createTextNode(a.text());
                    g(d)
                };
                switch (c.type()) {
                    case a.START_ELEMENT_TYPE:
                        d(c);
                        break;
                    case a.TEXT_TYPE:
                        h(c);
                        break;
                    case a.END_ELEMENT_TYPE:
                        f();
                        break;
                    case a.COMMENT_TYPE:
                        break;
                    default:
                        throw{message: "Unsupported token type: " + c.type()}
                }
            };
            return {dom: d, receive: h, label: "SERIALISER"}
        };
        return {create: b}
    }),g("80", ["86"], function (a) {
        var b = function (b, c) {
            var d;
            c = c || window.document, d = c.createElement("div"), c.body.appendChild(d), d.style.position = "absolute", d.style.left = "-10000px", d.innerHTML = b, nextNode = d.firstChild || a.FINISHED;
            var e = [];
            endNode = !1;
            var f = function (b, c) {
                return b === a.FINISHED ? b : b ? a.token(b, c) : void 0
            }, g = function () {
                var b = nextNode, g = endNode;
                return !endNode && nextNode.firstChild ? (e.push(nextNode), nextNode = nextNode.firstChild) : endNode || 1 !== nextNode.nodeType ? nextNode.nextSibling ? (nextNode = nextNode.nextSibling, endNode = !1) : (nextNode = e.pop(), endNode = !0) : endNode = !0, b === a.FINISHED || nextNode || (c.body.removeChild(d), nextNode = a.FINISHED), f(b, g)
            }, h = function () {
                return void 0 !== nextNode
            };
            return {hasNext: h, next: g}
        };
        return {tokenise: b}
    }),g("7j", ["7z", "80"], function (a, b) {
        var c = function (a, b, c) {
            var d, e = c;
            for (d = b.length - 1; d >= 0; d--) e = b[d](e, {}, a);
            return e
        }, d = function (d, e, f) {
            for (var g = a.create(d), h = b.tokenise(e, d), i = c(d, f, g); h.hasNext();) {
                var j = h.next();
                i.receive(j)
            }
            return g.dom
        };
        return {build: c, run: d}
    }),g("6m", ["g", "7i", "7j", "k", "6h", "1y", "3f"], function (a, b, c, d, e, f, g) {
        var h = function (a) {
            return function (c) {
                b.remover(c, a)
            }
        }, i = function (a) {
            return function (c) {
                b.unwrapper(c, a)
            }
        }, j = function (a) {
            return function (c) {
                b.transformer(c, a)
            }
        }, k = function () {
            return function (a) {
                b.validator(a)
            }
        }, l = function (a) {
            return function (b) {
                var d = e.get(b), h = g.owner(b), i = c.run(h.dom(), d, a);
                f.empty(b), b.dom().appendChild(i)
            }
        }, m = function (b, c, f) {
            var g = d.fromTag("div", b.dom());
            return g.dom().innerHTML = c, a.each(f, function (a) {
                a(g)
            }), e.get(g)
        }, n = function (a, b) {
            return a.indexOf("<o:p>") >= 0 || b.browser.isSpartan() && a.indexOf('v:shapes="') >= 0 || b.browser.isSpartan() && a.indexOf("mso-") >= 0 || a.indexOf("mso-list") >= 0 || a.indexOf("p.MsoNormal, li.MsoNormal, div.MsoNormal") >= 0 || a.indexOf("MsoListParagraphCxSpFirst") >= 0 || a.indexOf("<w:WordDocument>") >= 0
        };
        return {removal: h, unwrapper: i, transformer: j, validate: k, pipeline: l, isWordContent: n, go: m}
    }),g("7l", ["g", "86"], function (a, b) {
        return function (c, d, e) {
            return function (e, f, g) {
                var h = function (b) {
                    a.each(b, i)
                }, i = function (a) {
                    e.receive(a)
                }, j = function (a) {
                    c(l, a, k)
                }, k = function (a, c) {
                    return b.token(c, a.type() === b.END_ELEMENT_TYPE, {})
                }, l = {emit: i, emitTokens: h, receive: j, document: window.document};
                return d(l), l
            }
        }
    }),g("8u", ["8h", "86", "p", "j", "5d", "k"], function (a, b, c, d, e, f) {
        var g = function (a, b) {
            var c = f.fromDom(a.getNode());
            return d.get(c, b)
        }, h = function (a, b) {
            var c = f.fromDom(a.getNode());
            return e.get(c, b)
        }, i = function (a) {
            return a.type() === b.TEXT_TYPE && /^[\s\u00A0]*$/.test(a.text())
        }, j = function (b) {
            var d = f.fromDom(b.getNode()), e = a.scan(d, ["mso-list"], c.constant(!1));
            return e["mso-list"]
        };
        return {getAttribute: g, getStyle: h, isWhitespace: i, getMsoList: j}
    }),g("96", ["g", "n"], function (a, b) {
        var c = function (c, e) {
            var f = a.find(c, function (a) {
                return "UL" === a.tag || e && d(a, e, !0)
            });
            return void 0 !== f ? b.some(f) : c.length > 0 ? b.some(c[0]) : b.none()
        }, d = function (a, b, c) {
            return a === b || a && b && a.tag === b.tag && a.type === b.type && (c || a.variant === b.variant)
        };
        return {guessFrom: c, eqListType: d}
    }),g("8l", [], function () {
        var a = function (a, b) {
            if (void 0 === a || void 0 === b) throw console.trace(), "brick";
            a.nextFilter.set(b)
        }, b = function (b) {
            return function (c, d, e) {
                a(d, b)
            }
        }, c = function (a, b, c) {
            var d = b.nextFilter.get();
            d(a, b, c)
        }, d = function (b) {
            return function (d, e, f) {
                a(e, b), c(d, e, f)
            }
        }, e = function (a, b) {
            return a.nextFilter.get() === b
        };
        return {next: a, go: c, jump: d, isNext: e, setNext: b}
    }),g("8t", ["g", "8u", "96", "8l", "p", "2c", "j", "k"], function (a, b, c, d, e, f, g, h) {
        var i = function (a, b) {
            return g.has(h.fromDom(b.getNode()), "data-list-level")
        }, j = function (a) {
            var b = parseInt(g.get(a, "data-list-level"), 10), c = g.get(a, "data-list-emblems"), d = JSON.parse(c);
            return g.remove(a, "data-list-level"), g.remove(a, "data-list-emblems"), {
                level: e.constant(b),
                emblems: e.constant(d)
            }
        }, k = f.immutable("level", "token", "type"), l = function (c) {
            return !a.contains(["P"], c.tag()) || /^MsoHeading/.test(b.getAttribute(c, "class"))
        }, m = function (a, b, d, e) {
            var f = d.getCurrentListType(), g = d.getCurrentLevel(), h = g == e.level() ? f : null;
            return c.guessFrom(e.emblems(), h).filter(function (a) {
                return !("OL" === a.tag && l(b))
            })
        }, n = function (a, b, c) {
            var d = m(c.listType.get(), a, c.emitter, b);
            return d.each(c.listType.set), k(b.level(), c.originalToken.get(), c.listType.get())
        }, o = function (a) {
            return function (b, c, e) {
                var f = j(h.fromDom(e.getNode()));
                f.level();
                c.originalToken.set(e);
                var g = n(e, f, c);
                c.emitter.openItem(g.level(), g.token(), g.type()), d.next(c, a.inside())
            }
        };
        return {predicate: i, action: o}
    }),g("8v", ["p"], function (a) {
        return function (b, c, d) {
            return {pred: b, action: c, label: a.constant(d)}
        }
    }),g("8w", ["g", "p", "n"], function (a, b, c) {
        var d = function (a, b) {
            return function (a, c, d) {
                return b(a, c, d)
            }
        };
        return function (e, f, g) {
            var h = d(e + " :: FALLBACK --- ", g), i = function (g, i, j) {
                var k = c.from(a.find(f, function (a) {
                    return a.pred(i, j)
                })), l = k.fold(b.constant(h), function (a) {
                    var b = a.label();
                    return void 0 === b ? a.action : d(e + " :: " + b, a.action)
                });
                l(g, i, j)
            };
            return i.toString = function () {
                return "Handlers for " + e
            }, i
        }
    }),g("8i", ["8t", "86", "8u", "8v", "8w", "8l"], function (a, b, c, d, e, f) {
        var g = function (a) {
            var c = function (b, c, d) {
                f.next(c, a.outside())
            }, g = function (a, c) {
                return c.type() === b.END_ELEMENT_TYPE && a.originalToken.get() && c.tag() === a.originalToken.get().tag()
            };
            return e("Inside.List.Item", [d(g, c, "Closing open tag")], function (a, b, c) {
                a.emit(c)
            })
        }, h = function (g) {
            var h = function (a, b, c) {
                b.emitter.closeAllLists(), a.emit(c), f.next(b, g.outside())
            }, i = function (a, d) {
                return d.type() === b.TEXT_TYPE && c.isWhitespace(d)
            };
            return e("Outside.List.Item", [d(a.predicate, a.action(g), "Data List ****"), d(i, function (a, b, c) {
                a.emit(c)
            }, "Whitespace")], h)
        };
        return {inside: g, outside: h}
    }),g("97", ["2c"], function (a) {
        var b = a.immutable("state", "result"), c = a.immutable("state", "value"),
            d = a.immutable("level", "type", "types", "items");
        return {state: d, value: c, result: b}
    }),g("9j", ["97", "n"], function (a, b) {
        var c = function (c) {
            var d = c.items().slice(0);
            if (d.length > 0 && "P" !== d[d.length - 1]) {
                var e = d[d.length - 1];
                d[d.length - 1] = "P";
                var f = a.state(c.level(), c.type(), c.types(), d);
                return a.value(f, b.some(e))
            }
            return a.value(c, b.none())
        }, d = function (c, d) {
            var e = c.items().slice(0), f = void 0 !== d && "P" !== d ? b.some(d) : b.none();
            f.fold(function () {
                e.push("P")
            }, function (a) {
                e.push(a)
            });
            var g = a.state(c.level(), c.type(), c.types(), e);
            return a.value(g, f)
        };
        return {start: d, finish: c}
    }),g("9k", ["97"], function (a) {
        var b = function (b, c, d) {
            for (var e = [], f = b; c(f);) {
                var g = d(f);
                f = g.state(), e = e.concat(g.result())
            }
            return a.result(f, e)
        }, c = function (a, c, d) {
            var e = function (a) {
                return a.level() < c
            };
            return b(a, e, d)
        }, d = function (a, c, d) {
            var e = function (a) {
                return a.level() > c
            };
            return b(a, e, d)
        };
        return {moveRight: c, moveLeft: d, moveUntil: b}
    }),g("9v", ["8u"], function (a) {
        var b = function (b) {
            var c = a.getStyle(b, "margin-left");
            return void 0 !== c && "0px" !== c ? {"margin-left": c} : {}
        }, c = function (a) {
            var c = {"list-style-type": "none"};
            return a ? b(a) : c
        };
        return {from: c}
    }),g("9l", ["7y", "86", "96", "97", "9j", "9v", "p"], function (a, b, c, d, e, f, g) {
        var h = function (a, c, e) {
            var f = c.start && c.start > 1 ? {start: c.start} : {}, h = a.level() + 1, i = c, j = a.types().concat([c]),
                k = [g.curry(b.createStartElement, c.tag, f, e)], l = d.state(h, i, j, a.items());
            return d.result(l, k)
        }, i = function (a) {
            var c = a.types().slice(0), e = [g.curry(b.createEndElement, c.pop().tag)], f = a.level() - 1,
                h = c[c.length - 1], i = d.state(f, h, c, a.items());
            return d.result(i, e)
        }, j = function (a, b) {
            var c = i(a), e = h(c.state(), b, b.type ? {"list-style-type": b.type} : {});
            return d.result(e.state(), c.result().concat(e.result()))
        }, k = function (h, i, k) {
            var l = {}, m = f.from(i), n = h.type() && !c.eqListType(h.type(), k) ? j(h, k) : d.result(h, []),
                o = [g.curry(b.createStartElement, "LI", l, m)], p = e.start(n.state(), i && i.tag()),
                q = p.value().map(function (b) {
                    return a.styleDom(i.getNode(), g.constant(!0)), [g.constant(i)]
                }).getOr([]);
            return d.result(p.state(), n.result().concat(o).concat(q))
        }, l = function (a) {
            var c = g.curry(b.createEndElement, "LI"), f = e.finish(a), h = f.value().fold(function () {
                return [c]
            }, function (a) {
                return [g.curry(b.createEndElement, a), c]
            });
            return d.result(f.state(), h)
        };
        return {open: h, openItem: k, close: i, closeItem: l}
    }),g("98", ["g", "86", "97", "9j", "9k", "9l", "p", "n"], function (a, b, c, d, e, f, g, h) {
        var i = function (b) {
            if (0 === b.length) throw"Compose must have at least one element in the list";
            var d = b[b.length - 1], e = a.bind(b, function (a) {
                return a.result()
            });
            return c.result(d.state(), e)
        }, j = function (a) {
            var b = f.closeItem(a), c = f.close(b.state());
            return i([b, c])
        }, k = function (a, b, c, d) {
            var e = a.level() === c - 1 && b.type ? {"list-style-type": b.type} : {}, g = f.open(a, b, e),
                h = f.openItem(g.state(), g.state().level() == c ? d : void 0, b);
            return i([g, h])
        }, l = function (a, b, d) {
            var e = a.level() > 0 ? f.closeItem(a) : c.result(a, []), g = f.openItem(e.state(), d, b);
            return i([e, g])
        }, m = function (a, b, c, d) {
            return e.moveRight(a, c, function (a) {
                return k(a, b, c, d)
            })
        }, n = function (a, b) {
            return e.moveLeft(a, b, j)
        }, o = function (a, e, f, i) {
            var j = f > 1 ? d.finish(a) : c.value(a, h.none()), k = j.value().map(function (a) {
                return [g.curry(b.createEndElement, a)]
            }).getOr([]), l = (f - j.state().level(), m(j.state(), e, f, i));
            return c.result(l.state(), k.concat(l.result()))
        }, p = function (a, b, d, e) {
            var f = a.level() > b ? n(a, b) : c.result(a, []),
                g = f.state().level() === b ? l(f.state(), e, d) : o(f.state(), e, b, d);
            return i([f, g])
        }, q = n;
        return {openItem: p, closeAllLists: q}
    }),g("8x", ["g", "97", "98"], function (a, b, c) {
        var d = ["disc", "circle", "square"], e = function (a, b) {
            return "UL" === a.tag && d[b - 1] === a.type && (a = {tag: "UL"}), a
        };
        return function (d, f) {
            var g = b.state(0, void 0, [], []), h = function (b) {
                a.each(b.result(), function (a) {
                    var b = a(f);
                    d.emit(b)
                })
            }, i = function () {
                var a = c.closeAllLists(g, 0);
                g = a.state(), h(a)
            }, j = function (a, b, d) {
                if (d) {
                    var f = e(d, a), i = c.openItem(g, a, b, f);
                    g = i.state(), h(i)
                }
            }, k = function () {
                return g.level()
            }, l = function () {
                return g.type()
            };
            return {closeAllLists: i, openItem: j, getCurrentListType: l, getCurrentLevel: k}
        }
    }),g("z", [], function () {
        var a = function (b) {
            var c = b, d = function () {
                return c
            }, e = function (a) {
                c = a
            }, f = function () {
                return a(d())
            };
            return {get: d, set: e, clone: f}
        };
        return a
    }),g("8j", ["8x", "p", "z"], function (a, b, c) {
        var d = {
            getCurrentListType: function () {
                return e().getCurrentListType()
            }, getCurrentLevel: function () {
                return e().getCurrentLevel()
            }, closeAllLists: function () {
                return e().closeAllLists.apply(void 0, arguments)
            }, openItem: function () {
                return e().openItem.apply(void 0, arguments)
            }
        }, e = function () {
            return {
                getCurrentListType: b.constant({}),
                getCurrentLevel: b.constant(1),
                closeAllLists: b.identity,
                openItem: b.identity
            }
        };
        return function (f) {
            var g = c(f), h = c(null), i = c(null), j = function (c) {
                g.set(f), h.set(null), i.set(null), _emitter = a(c, c.document), e = b.constant(_emitter)
            };
            return {reset: j, nextFilter: g, originalToken: h, listType: i, emitter: d}
        }
    }),g("8k", ["86"], function (a) {
        return function () {
            var b = !1, c = "", d = function (d) {
                return b && d.type() === a.TEXT_TYPE ? (c += d.text(), !0) : d.type() === a.START_ELEMENT_TYPE && "STYLE" === d.tag() ? (b = !0, !0) : d.type() === a.END_ELEMENT_TYPE && "STYLE" === d.tag() && (b = !1, !0)
            };
            return {check: d}
        }
    }),g("81", ["7l", "8i", "8j", "8k", "8l", "1g"], function (a, b, c, d, e, f) {
        var g = {
            inside: function () {
                return i
            }, outside: function () {
                return j
            }
        }, h = d(), i = b.inside(g), j = b.outside(g), k = c(j);
        return a(function (a, b, c) {
            h.check(b) || e.go(a, k, b)
        }, k.reset, "list.filters")
    }),h("8o", parseInt),g("8y", ["g", "1l", "64", "8o"], function (a, b, c, d) {
        var e = [{regex: /^\(?[dc][\.\)]$/, type: {tag: "OL", type: "lower-alpha"}}, {
            regex: /^\(?[DC][\.\)]$/,
            type: {tag: "OL", type: "upper-alpha"}
        }, {
            regex: /^\(?M*(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})[\.\)]$/,
            type: {tag: "OL", type: "upper-roman"}
        }, {
            regex: /^\(?m*(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})[\.\)]$/,
            type: {tag: "OL", type: "lower-roman"}
        }, {regex: /^\(?[0-9]+[\.\)]$/, type: {tag: "OL"}}, {
            regex: /^([0-9]+\.)*[0-9]+\.?$/,
            type: {tag: "OL", variant: "outline"}
        }, {regex: /^\(?[a-z]+[\.\)]$/, type: {tag: "OL", type: "lower-alpha"}}, {
            regex: /^\(?[A-Z]+[\.\)]$/,
            type: {tag: "OL", type: "upper-alpha"}
        }], f = {
            "\u2022": {tag: "UL", type: "disc"},
            "\xb7": {tag: "UL", type: "disc"},
            "\xa7": {tag: "UL", type: "square"}
        }, g = {
            o: {tag: "UL", type: "circle"},
            "-": {tag: "UL", type: "disc"},
            "\u25cf": {tag: "UL", type: "disc"},
            "\ufffd": {tag: "UL", type: "circle"}
        }, h = function (a, b) {
            return void 0 !== a.variant ? a.variant : "(" === b.charAt(0) ? "()" : ")" === b.charAt(b.length - 1) ? ")" : "."
        }, i = function (a) {
            var b = a.split("."), e = function () {
                if (0 === b.length) return a;
                var c = b[b.length - 1];
                return 0 === c.length && b.length > 1 ? b[b.length - 2] : c
            }(), f = d(e, 10);
            return c(f) ? {} : {start: f}
        }, j = function (c, d) {
            var j = g[c] ? [g[c]] : [], k = d && f[c] ? [f[c]] : d ? [{tag: "UL", variant: c}] : [],
                l = a.bind(e, function (a) {
                    return a.regex.test(c) ? [b.merge(a.type, i(c), {variant: h(a.type, c)})] : []
                }), m = j.concat(k).concat(l);
            return a.map(m, function (a) {
                return void 0 !== a.variant ? a : b.merge(a, {variant: c})
            })
        };
        return {extract: j}
    }),g("7o", [], function () {
        var a = function (a) {
            return a.dom().textContent
        }, b = function (a, b) {
            a.dom().textContent = b
        };
        return {get: a, set: b}
    }),g("8m", ["g", "8y", "8h", "p", "n", "5d", "6h", "1d", "6r", "7o", "3f", "62", "64", "8o"], function (a, b, c, d, e, f, g, h, i, j, k, l, m, n) {
        var o = 18, p = function (a) {
            var b = c.scan(a, ["mso-list"], d.constant(!1));
            return b["mso-list"]
        }, q = function (a) {
            var b = p(a), c = / level([0-9]+)/.exec(b);
            return c && c[1] ? e.some(n(c[1], 10)) : e.none()
        }, r = function (a, c) {
            var d = j.get(a).trim(), f = b.extract(d, c);
            return f.length > 0 ? e.some(f) : e.none()
        }, s = function (a) {
            return i.child(a, v)
        }, t = function (a) {
            return i.child(a, h.isComment).bind(k.nextSibling).filter(function (a) {
                return "span" === h.name(a)
            })
        }, u = function (a) {
            return i.descendant(a, function (a) {
                var b = h.isElement(a) ? c.scan(a, ["mso-list"], d.constant(!1)) : [];
                return !!b["mso-list"]
            })
        }, v = function (b) {
            return h.isElement(b) && f.getRaw(b, "font-family").exists(function (b) {
                return a.contains(["wingdings", "symbol"], b.toLowerCase())
            })
        }, w = function (a) {
            return f.getRaw(a, "margin-left").bind(function (a) {
                var b = n(a, 10);
                return m(b) ? e.none() : e.some(l.max(1, l.ceil(b / o)))
            })
        };
        return {
            getMsoList: p,
            extractLevel: q,
            extractEmblem: r,
            extractSymSpan: s,
            extractMsoIgnore: u,
            extractCommentSpan: t,
            isSymbol: v,
            deduceLevel: w
        }
    }),h("8n", JSON),g("82", ["g", "8m", "n", "j", "7r", "1d", "1y", "3f", "8n", "8o"], function (a, b, c, d, e, f, g, h, i, j) {
        var k = function (a, b, c) {
            d.set(a, "data-list-level", b);
            var e = i.stringify(c);
            d.set(a, "data-list-emblems", e)
        }, l = function (b) {
            var d = e.find(b, c.none());
            a.each(d, g.remove)
        }, m = function (b, c, e, f) {
            k(b, c, e), l(b), a.each(f, g.remove), d.remove(b, "style"), d.remove(b, "class")
        }, n = function (a) {
            return b.extractLevel(a).bind(function (c) {
                return b.extractSymSpan(a).bind(function (d) {
                    return b.extractEmblem(d, !0).map(function (b) {
                        var e = function () {
                            m(a, c, b, [d])
                        };
                        return {mutate: e}
                    })
                })
            })
        }, o = function (a) {
            return b.extractLevel(a).bind(function (c) {
                return b.extractCommentSpan(a).bind(function (d) {
                    return b.extractEmblem(d, b.isSymbol(d)).map(function (b) {
                        var e = function () {
                            m(a, c, b, [d])
                        };
                        return {mutate: e}
                    })
                })
            })
        }, p = function (a) {
            return b.extractLevel(a).bind(function (c) {
                return b.extractCommentSpan(a).bind(function (d) {
                    return b.extractEmblem(d, b.isSymbol(d)).map(function (b) {
                        var e = function () {
                            m(a, c, b, [d])
                        };
                        return {mutate: e}
                    })
                })
            })
        }, q = function (a) {
            return "p" !== f.name(a) ? c.none() : b.extractLevel(a).bind(function (c) {
                return b.extractMsoIgnore(a).bind(function (d) {
                    return b.extractEmblem(d, !1).map(function (b) {
                        var e = function () {
                            m(a, c, b, [h.parent(d).getOr(d)])
                        };
                        return {mutate: e}
                    })
                })
            })
        }, r = function (a) {
            return "p" !== f.name(a) ? c.none() : b.extractMsoIgnore(a).bind(function (c) {
                var d = h.parent(c).getOr(c), e = b.isSymbol(d);
                return b.extractEmblem(c, e).bind(function (c) {
                    return b.deduceLevel(a).map(function (b) {
                        var e = function () {
                            m(a, b, c, [d])
                        };
                        return {mutate: e}
                    })
                })
            })
        }, s = function (a) {
            return n(a).orThunk(function () {
                return o(a)
            }).orThunk(function () {
                return p(a)
            }).orThunk(function () {
                return q(a)
            }).orThunk(function () {
                return r(a)
            })
        };
        return {find: s}
    }),g("7k", ["6m", "81", "82", "83"], function (a, b, c, d) {
        var e = a.transformer({
            tags: [{
                name: d.pattern(/^(p|h\d+)$/), mutate: function (a) {
                    c.find(a).each(function (a) {
                        a.mutate()
                    })
                }
            }]
        });
        return {filter: b, preprocess: e}
    }),g("6n", ["6r"], function (a) {
        var b = function (b) {
            return a.first(b).isSome()
        }, c = function (b, c, d) {
            return a.ancestor(b, c, d).isSome()
        }, d = function (b, c, d) {
            return a.closest(b, c, d).isSome()
        }, e = function (b, c) {
            return a.sibling(b, c).isSome()
        }, f = function (b, c) {
            return a.child(b, c).isSome()
        }, g = function (b, c) {
            return a.descendant(b, c).isSome()
        };
        return {any: b, ancestor: c, closest: d, sibling: e, child: f, descendant: g}
    }),g("84", ["g", "j", "6h", "1d", "6n"], function (a, b, c, d, e) {
        var f = function (a) {
            return "img" !== d.name(a)
        }, g = function (a) {
            var b = a.dom().attributes, c = void 0 !== b && null !== b && b.length > 0;
            return "span" !== d.name(a) || c
        }, h = function (b) {
            return !k(b) || g(b) && e.descendant(b, function (b) {
                var c = !k(b),
                    e = !a.contains(["font", "em", "strong", "samp", "acronym", "cite", "code", "dfn", "kbd", "tt", "b", "i", "u", "s", "sub", "sup", "ins", "del", "var", "span"], d.name(b));
                return d.isText(b) || c || e
            })
        }, i = function (a) {
            return "ol" === d.name(a) || "ul" === d.name(a)
        }, j = function (a) {
            var c = b.get(a, "src");
            return /^file:/.test(c)
        }, k = function (a) {
            return void 0 === a.dom().attributes || null === a.dom().attributes || (0 === a.dom().attributes.length || 1 === a.dom().attributes.length && "style" === a.dom().attributes[0].name)
        }, l = function (a) {
            return 0 === c.get(a).length
        };
        return {isNotImage: f, hasContent: h, isList: i, isLocal: j, hasNoAttributes: k, isEmpty: l}
    }),g("8p", ["1d", "7s"], function (a, b) {
        var c = b(a.isText, "text"), d = function (a) {
            return c.get(a)
        }, e = function (a) {
            return c.getOption(a)
        }, f = function (a, b) {
            c.set(a, b)
        };
        return {get: d, getOption: e, set: f}
    }),g("85", ["g", "1c", "n", "j", "5d", "k", "6h", "1x", "29", "1d", "1y", "8p", "3f"], function (a, b, c, d, e, f, g, h, i, j, k, l, m) {
        var n = function (b, c) {
            var d = f.fromTag(b);
            h.before(c, d);
            var e = c.dom().attributes;
            a.each(e, function (a) {
                d.dom().setAttribute(a.name, a.value)
            });
            var g = m.children(c);
            return i.append(d, g), k.remove(c), d
        }, o = function (a) {
            0 === g.get(a).length && h.append(a, f.fromTag("br"))
        }, p = function (a) {
            return m.prevSibling(a).bind(function (a) {
                return j.isText(a) && 0 === l.get(a).trim().length ? p(a) : "li" === j.name(a) ? c.some(a) : c.none()
            })
        }, q = function (b) {
            m.parent(b).each(function (c) {
                var d = j.name(c);
                a.contains(["ol", "ul"], d) && p(b).fold(function () {
                    var a = f.fromTag("li");
                    e.set(a, "list-style-type", "none"), h.wrap(b, a)
                }, function (a) {
                    h.append(a, b)
                })
            })
        }, r = function (a) {
            var c = n("span", a), f = {face: "font-family", size: "font-size", color: "color"},
                g = {"font-size": {1: "8pt", 2: "10pt", 3: "12pt", 4: "14pt", 5: "18pt", 6: "24pt", 7: "36pt"}};
            b.each(f, function (a, b) {
                if (d.has(c, b)) {
                    var f = d.get(c, b), h = void 0 !== g[a] && void 0 !== g[a][f] ? g[a][f] : f;
                    e.set(c, a, h), d.remove(c, b)
                }
            })
        };
        return {changeTag: n, addBrTag: o, properlyNest: q, fontToSpan: r}
    }),g("7h", ["7w", "6m", "7k", "84", "85", "p", "27", "5d", "3f", "1d", "83"], function (a, b, c, d, e, f, g, h, i, j, k) {
        var l = b.unwrapper({tags: [{name: k.pattern(/^([OVWXP]|U[0-9]+|ST[0-9]+):/i)}]}), m = [b.pipeline([c.filter])],
            n = b.removal({
                attributes: [{name: k.pattern(/^v:/)}, {
                    name: k.exact("href"),
                    value: k.contains("#_toc")
                }, {
                    name: k.exact("href"),
                    value: k.contains("#_mso")
                }, {name: k.pattern(/^xmlns(:|$)/)}, {name: k.exact("type"), condition: d.isList}]
            }), o = b.removal({attributes: [{name: k.exact("id")}, {name: k.exact("name")}]}), p = b.removal({
                tags: [{name: k.exact("script")}, {name: k.exact("meta")}, {name: k.exact("link")}, {
                    name: k.exact("style"),
                    condition: d.isEmpty
                }],
                attributes: [{name: k.starts("on")}, {name: k.exact('"')}, {name: k.exact("lang")}, {name: k.exact("language")}],
                styles: [{name: k.all(), value: k.pattern(/OLE_LINK/i)}]
            }), q = function (a) {
                return !g.has(a, "ephox-limbo-transform")
            }, r = function (a) {
                return function (b) {
                    return i.parent(b).exists(function (b) {
                        return j.name(b) === a && 1 === i.children(b).length
                    })
                }
            }, s = b.removal({
                styles: [{
                    name: k.not(k.pattern(/width|height|list-style-type/)),
                    condition: q
                }, {name: k.pattern(/width|height/), condition: d.isNotImage}]
            }), t = b.removal({classes: [{name: k.not(k.exact("rtf-data-image"))}]}),
            u = b.removal({styles: [{name: k.pattern(a.validStyles())}]}),
            v = b.removal({classes: [{name: k.pattern(/mso/i)}]}), w = b.unwrapper({
                tags: [{name: k.exact("img"), condition: d.isLocal}, {
                    name: k.exact("a"),
                    condition: d.hasNoAttributes
                }]
            }), x = b.unwrapper({tags: [{name: k.exact("a"), condition: d.hasNoAttributes}]}),
            y = b.removal({attributes: [{name: k.exact("style"), value: k.exact(""), debug: !0}]}),
            z = b.removal({attributes: [{name: k.exact("class"), value: k.exact(""), debug: !0}]}),
            A = b.unwrapper({tags: [{name: k.pattern(a.specialInline()), condition: f.not(d.hasContent)}]}),
            B = b.unwrapper({tags: [{name: k.exact("p"), condition: r("li")}]}),
            C = b.transformer({tags: [{name: k.exact("p"), mutate: e.addBrTag}]}), D = function (a) {
                var b = e.changeTag("span", a);
                g.add(b, "ephox-limbo-transform"), h.set(b, "text-decoration", "underline")
            }, E = b.transformer({tags: [{name: k.pattern(/ol|ul/), mutate: e.properlyNest}]}), F = b.transformer({
                tags: [{name: k.exact("b"), mutate: f.curry(e.changeTag, "strong")}, {
                    name: k.exact("i"),
                    mutate: f.curry(e.changeTag, "em")
                }, {name: k.exact("u"), mutate: D}, {
                    name: k.exact("s"),
                    mutate: f.curry(e.changeTag, "strike")
                }, {name: k.exact("font"), mutate: e.fontToSpan, debug: !0}]
            }), G = b.removal({classes: [{name: k.exact("ephox-limbo-transform")}]}),
            H = b.removal({attributes: [{name: k.exact("href"), value: k.starts("file:///"), debug: !0}]});
        return {
            unwrapWordTags: l,
            removeWordAttributes: n,
            parseLists: m,
            removeExcess: p,
            cleanStyles: s,
            cleanClasses: t,
            mergeStyles: u,
            mergeClasses: v,
            removeLocalImages: w,
            removeVacantLinks: x,
            removeEmptyStyle: y,
            removeEmptyClass: z,
            pruneInlineTags: A,
            unwrapSingleParagraphsInlists: B,
            addPlaceholders: C,
            nestedListFixes: E,
            inlineTagFixes: F,
            cleanupFlags: G,
            removeLocalLinks: H,
            removeAnchors: o,
            none: f.noop
        }
    }),g("6k", ["g", "5a", "7h", "6m", "7k", "7l", "p", "k"], function (a, b, c, d, e, f, g, h) {
        var i = function (a) {
            return a.browser.isIE() && a.browser.version.major >= 11
        }, j = function (a) {
            return f(function (b, c, d) {
                var e = a(h.fromDom(c.getNode())).fold(function () {
                    return c
                }, function (a) {
                    return d(c, a.dom())
                });
                b.emit(e)
            }, g.noop, "image filters")
        }, k = function (a, e, f) {
            var g = f.browser.isFirefox() || f.browser.isSpartan() ? b.local : b.vshape,
                h = i(f) ? c.none : d.pipeline([j(g)]), k = g === b.local ? c.none : c.removeLocalImages,
                l = a ? h : c.none;
            return {annotate: [l], local: [k]}
        }, l = function (a, b) {
            var d = i(b) && a;
            return d ? [c.unwrapSingleParagraphsInlists] : []
        }, m = function (a, b, d) {
            var e = [c.mergeStyles, c.mergeClasses], f = [c.cleanStyles, c.cleanClasses];
            return b ? e : f
        }, n = function (a, b, c) {
            return i(c) || !a ? [] : [e.preprocess]
        }, o = function (a, b, d) {
            if (!a) return [c.none];
            var e = [c.unwrapWordTags], f = i(d) ? [] : c.parseLists;
            return e.concat(f).concat([c.removeWordAttributes])
        }, p = function (a, b, d) {
            return a ? [c.removeAnchors] : [c.none]
        }, q = function (b, d, e) {
            var f = k(b, d, e);
            return a.flatten([n(b, d, e), f.annotate, [c.inlineTagFixes], o(b, d, e), [c.nestedListFixes], [c.removeExcess], p(b, d, e), f.local, m(b, d, e), [c.removeLocalLinks, c.removeVacantLinks], [c.removeEmptyStyle], [c.removeEmptyClass], [c.pruneInlineTags], [c.addPlaceholders], l(b, e), [c.cleanupFlags]])
        };
        return {derive: q}
    }),g("8q", [], function () {
        return ["body", "p", "div", "article", "aside", "figcaption", "figure", "footer", "header", "nav", "section", "ol", "ul", "li", "table", "thead", "tbody", "tfoot", "caption", "tr", "td", "th", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "pre", "address"]
    }),g("87", ["8q", "g", "p", "j", "3n", "5d", "k", "1x", "29", "1d", "3o", "6r", "1y", "2a", "20", "8p", "3f"], function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) {
        return function () {
            var r = function (a) {
                return g.fromDom(a.dom().cloneNode(!1))
            }, s = function (c) {
                return !!j.isElement(c) && ("body" === j.name(c) || b.contains(a, j.name(c)))
            }, t = function (a) {
                return !!j.isElement(a) && b.contains(["br", "img", "hr"], j.name(a))
            }, u = function (a, b) {
                return a.dom().compareDocumentPosition(b.dom())
            }, v = function (a, b) {
                var c = d.clone(a);
                d.setAll(b, c)
            };
            return {
                up: c.constant({selector: o.ancestor, closest: o.closest, predicate: l.ancestor, all: q.parents}),
                down: c.constant({selector: n.descendants, predicate: k.descendants}),
                styles: c.constant({get: f.get, getRaw: f.getRaw, set: f.set, remove: f.remove}),
                attrs: c.constant({get: d.get, set: d.set, remove: d.remove, copyTo: v}),
                insert: c.constant({
                    before: h.before,
                    after: h.after,
                    afterAll: i.after,
                    append: h.append,
                    appendAll: i.append,
                    prepend: h.prepend,
                    wrap: h.wrap
                }),
                remove: c.constant({unwrap: m.unwrap, remove: m.remove}),
                create: c.constant({nu: g.fromTag, clone: r, text: g.fromText}),
                query: c.constant({comparePosition: u, prevSibling: q.prevSibling, nextSibling: q.nextSibling}),
                property: c.constant({
                    children: q.children,
                    name: j.name,
                    parent: q.parent,
                    isText: j.isText,
                    isElement: j.isElement,
                    getText: p.get,
                    setText: p.set,
                    isBoundary: s,
                    isEmptyTag: t
                }),
                eq: e.eq,
                is: e.is
            }
        }
    }),g("8z", ["2c"], function (a) {
        return a.immutable("word", "pattern")
    }),g("90", ["2c"], function (a) {
        var b = a.immutable("element", "offset"), c = a.immutable("element", "deltaOffset"),
            d = a.immutable("element", "start", "finish"), e = a.immutable("begin", "end"),
            f = a.immutable("element", "text");
        return {point: b, delta: c, range: d, points: e, text: f}
    }),g("9n", ["p", "n"], function (a, b) {
        var c = a.constant(!1), d = a.constant(!0), e = function (a, b) {
            return h(function (c, d, e) {
                return c(a, b)
            })
        }, f = function (a, b) {
            return h(function (c, d, e) {
                return d(a, b)
            })
        }, g = function (a, b) {
            return h(function (c, d, e) {
                return e(a, b)
            })
        }, h = function (e) {
            var f = function () {
                return e(d, c, c)
            }, g = function () {
                return e(b.none, b.none, function (a, c) {
                    return b.some(a)
                })
            }, h = function (a) {
                return e(c, c, function (b, c) {
                    return c.eq(b, a)
                })
            }, i = function () {
                return e(a.constant(0), a.constant(1), function (a, b) {
                    return b.property().getText(a).length
                })
            };
            return {isBoundary: f, fold: e, toText: g, is: h, len: i}
        }, i = function (a, b, c, d) {
            return a.fold(b, c, d)
        };
        return {text: g, boundary: e, empty: f, cata: i}
    }),g("9o", ["g", "p"], function (a, b) {
        var c = function (c, d, e, f) {
            var g = a.findIndex(c, b.curry(f, d)), h = g > -1 ? g : 0, i = a.findIndex(c, b.curry(f, e)),
                j = i > -1 ? i + 1 : c.length;
            return c.slice(h, j)
        };
        return {boundAt: c}
    }),g("9p", ["g"], function (a) {
        var b = function (b, c) {
            var d = a.findIndex(b, c);
            return b.slice(0, d)
        };
        return {sliceby: b}
    }),g("9r", ["1m"], function (a) {
        var b = a.generate([{include: ["item"]}, {excludeWith: ["item"]}, {excludeWithout: ["item"]}]),
            c = function (a, b, c, d) {
                return a.fold(b, c, d)
            };
        return {include: b.include, excludeWith: b.excludeWith, excludeWithout: b.excludeWithout, cata: c}
    }),g("9q", ["g", "9r"], function (a, b) {
        var c = function (a, c) {
            return d(a, function (a) {
                return c(a) ? b.excludeWithout(a) : b.include(a)
            })
        }, d = function (c, d) {
            var e = [], f = [];
            return a.each(c, function (a) {
                var c = d(a);
                b.cata(c, function () {
                    f.push(a)
                }, function () {
                    f.length > 0 && e.push(f), e.push([a]), f = []
                }, function () {
                    f.length > 0 && e.push(f), f = []
                })
            }), f.length > 0 && e.push(f), e
        };
        return {splitby: c, splitbyAdv: d}
    }),g("9b", ["9o", "9p", "9q"], function (a, b, c) {
        var d = function (b, c, d, e) {
            return a.boundAt(b, c, d, e)
        }, e = function (a, b) {
            return c.splitby(a, b)
        }, f = function (a, b) {
            return c.splitbyAdv(a, b)
        }, g = function (a, c) {
            return b.sliceby(a, c)
        };
        return {splitby: e, splitbyAdv: f, sliceby: g, boundAt: d}
    }),g("92", ["g", "p", "n", "90", "9b"], function (a, b, c, d, e) {
        var f = function (b) {
            return a.foldr(b, function (a, b) {
                return b.len() + a
            }, 0)
        }, g = function (a, b) {
            return e.sliceby(a, function (a) {
                return a.is(b)
            })
        }, h = function (a, b) {
            return a.fold(c.none, function (a) {
                return c.some(d.range(a, b, b + 1))
            }, function (e) {
                return c.some(d.range(e, b, b + a.len()))
            })
        }, i = function (c) {
            return a.bind(c, function (a) {
                return a.fold(b.constant([]), b.constant([]), function (a) {
                    return [a]
                })
            })
        };
        return {count: f, dropUntil: g, gen: h, justText: i}
    }),g("9w", ["g", "90", "9n", "92"], function (a, b, c, d) {
        var e = function (b, d, f) {
            if (b.property().isText(d)) return [c.text(d, b)];
            if (b.property().isEmptyTag(d)) return [c.empty(d, b)];
            if (b.property().isElement(d)) {
                var g = b.property().children(d), h = b.property().isBoundary(d) ? [c.boundary(d, b)] : [],
                    i = void 0 !== f && f(d) ? [] : a.bind(g, function (a) {
                        return e(b, a, f)
                    });
                return h.concat(i).concat(h)
            }
            return []
        }, f = function (b, c, d) {
            var f = e(b, c, d), g = function (a, b) {
                return a
            };
            return a.map(f, function (a) {
                return a.fold(g, g, g)
            })
        }, g = function (a, c, f, g, h) {
            var i = e(a, g, h), j = d.dropUntil(i, c), k = d.count(j);
            return b.point(g, k + f)
        }, h = function (a, c, d, e) {
            return a.property().parent(c).fold(function () {
                return b.point(c, d)
            }, function (b) {
                return g(a, c, d, b, e)
            })
        }, i = function (a, c, d, e, f) {
            return a.up().predicate(c, e).fold(function () {
                return b.point(c, d)
            }, function (b) {
                return g(a, c, d, b, f)
            })
        };
        return {typed: e, items: f, extractTo: i, extract: h}
    }),g("9x", ["g", "p", "9w"], function (a, b, c) {
        var d = "\n", e = " ", f = function (a, b) {
            return "img" === b.property().name(a) ? e : d
        }, g = function (e, g, h) {
            var i = c.typed(e, g, h);
            return a.map(i, function (a) {
                return a.fold(b.constant(d), f, e.property().getText)
            }).join("")
        };
        return {from: g}
    }),g("9d", ["g", "p"], function (a, b) {
        var c = function (c, d, e) {
            var f = {len: void 0 !== e ? e : 0, list: []}, g = a.foldl(c, function (a, c) {
                var e = d(c, a.len);
                return e.fold(b.constant(a), function (b) {
                    return {len: b.finish(), list: a.list.concat([b])}
                })
            }, f);
            return g.list
        };
        return {make: c}
    }),g("9e", ["g", "n"], function (a, b) {
        var c = function (a, b) {
            return b >= a.start() && b <= a.finish()
        }, d = function (d, e) {
            var f = a.find(d, function (a) {
                return c(a, e)
            });
            return b.from(f)
        }, e = function (b, c) {
            return a.findIndex(b, function (a) {
                return a.start() === c
            })
        }, f = function (a, b) {
            var c = a[a.length - 1] && a[a.length - 1].finish() === b;
            return c ? a.length + 1 : -1
        }, g = function (a, b, c) {
            var d = e(a, b), g = e(a, c), h = g > -1 ? g : f(a, c);
            return d > -1 && h > -1 ? a.slice(d, h) : []
        }, h = function (c, d) {
            return b.from(a.find(c, d))
        };
        return {get: d, find: h, inUnit: c, sublist: g}
    }),g("9g", ["g", "1l", "p"], function (a, b, c) {
        var d = function (d, e) {
            return a.map(d, function (a) {
                return b.merge(a, {start: c.constant(a.start() + e), finish: c.constant(a.finish() + e)})
            })
        };
        return {translate: d}
    }),g("9f", ["g", "9e", "9g"], function (a, b, c) {
        var d = function (a, b, d) {
            var e = d(a, b);
            return c.translate(e, a.start())
        }, e = function (c, e, f) {
            return 0 === e.length ? c : a.bind(c, function (c) {
                var g = a.bind(e, function (a) {
                    return b.inUnit(c, a) ? [a - c.start()] : []
                });
                return g.length > 0 ? d(c, g, f) : [c]
            })
        };
        return {splits: e}
    }),g("94", ["9d", "9e", "9f", "9g"], function (a, b, c, d) {
        var e = function (b, c, d) {
            return a.make(b, c, d)
        }, f = function (a, c) {
            return b.get(a, c)
        }, g = function (a, c) {
            return b.find(a, c)
        }, h = function (a, b, d) {
            return c.splits(a, b, d)
        }, i = function (a, b) {
            return d.translate(a, b)
        }, j = function (a, c, d) {
            return b.sublist(a, c, d)
        };
        return {generate: e, get: f, find: g, splits: h, translate: i, sublist: j}
    }),g("9y", ["90", "9w", "92", "94"], function (a, b, c, d) {
        var e = function (e, f, g, h) {
            var i = b.typed(e, f, h), j = d.generate(i, c.gen), k = d.get(j, g);
            return k.map(function (b) {
                return a.point(b.element(), g - b.start())
            })
        };
        return {find: e}
    }),g("9m", ["9w", "9x", "9y"], function (a, b, c) {
        var d = function (b, c, d) {
            return a.typed(b, c, d)
        }, e = function (b, c, d) {
            return a.items(b, c, d)
        }, f = function (b, c, d, e) {
            return a.extract(b, c, d, e)
        }, g = function (b, c, d, e, f) {
            return a.extractTo(b, c, d, e, f)
        }, h = function (a, b, d, e) {
            return c.find(a, b, d, e)
        }, i = function (a, c, d) {
            return b.from(a, c, d)
        };
        return {extract: f, extractTo: g, all: e, from: d, find: h, toText: i}
    }),g("99", ["g", "9m", "9n", "9b", "9r"], function (a, b, c, d, e) {
        var f = function (f, g, h) {
            var i = a.bind(g, function (a) {
                return b.from(f, a, h)
            }), j = d.splitbyAdv(i, function (a) {
                return c.cata(a, function () {
                    return e.excludeWithout(a)
                }, function () {
                    return e.excludeWith(a)
                }, function () {
                    return e.include(a)
                })
            });
            return a.filter(j, function (a) {
                return a.length > 0
            })
        };
        return {group: f}
    }),g("9s", ["g", "n"], function (a, b) {
        var c = function (c, d, e) {
            var f = [d].concat(c.up().all(d)), g = [e].concat(c.up().all(e)), h = a.find(f, function (b) {
                return a.exists(g, function (a) {
                    return c.eq(a, b)
                })
            });
            return b.from(h)
        };
        return {common: c}
    }),g("9t", ["g"], function (a) {
        var b = ["table", "tbody", "thead", "tfoot", "tr", "ul", "ol"];
        return function (c) {
            var d = c.property(), e = function (b, c) {
                return d.parent(b).map(d.name).map(function (b) {
                    return !a.contains(c, b)
                }).getOr(!1)
            }, f = function (a) {
                return d.isText(a) && e(a, b)
            };
            return {validateText: f}
        }
    }),g("9a", ["g", "p", "9m", "9s", "9t"], function (a, b, c, d, e) {
        var f = function (c, d, e) {
            return a.findIndex(d, b.curry(c.eq, e))
        }, g = function (a, b, c, d, e) {
            return b < d ? a.slice(b + c, d + e) : a.slice(d + e, b + c)
        }, h = function (h, i, j, k, l) {
            return h.eq(i, k) ? [i] : d.common(h, i, k).fold(function () {
                return []
            }, function (d) {
                var m = [d].concat(c.all(h, d, b.constant(!1))), n = f(h, m, i), o = f(h, m, k),
                    p = n > -1 && o > -1 ? g(m, n, j, o, l) : [], q = e(h);
                return a.filter(p, q.validateText)
            })
        };
        return {range: h}
    }),g("91", ["99", "9a"], function (a, b) {
        var c = function (a, c, d, e, f) {
            return b.range(a, c, d, e, f)
        }, d = function (b, c, d) {
            return a.group(b, c, d)
        };
        return {range: c, group: d}
    }),g("9z", [], function () {
        var a = function (a) {
            var b = /^[a-zA-Z]/.test(a) ? "" : "e", c = a.replace(/[^\w]/gi, "-");
            return b + c
        };
        return {css: a}
    }),g("a0", ["g"], function (a) {
        var b = function (b, c) {
            if (0 === c.length) return [b];
            var d = a.foldl(c, function (a, c) {
                if (0 === c) return a;
                var d = b.substring(a.prev, c);
                return {prev: c, values: a.values.concat([d])}
            }, {prev: 0, values: []}), e = c[c.length - 1];
            return e < b.length ? d.values.concat(b.substring(e)) : d.values
        };
        return {splits: b}
    }),g("9u", ["9z", "a0"], function (a, b) {
        var c = function (a, c) {
            return b.splits(a, c)
        }, d = function (b) {
            return a.css(b)
        };
        return {cssSanitise: d, splits: c}
    }),g("9c", ["g", "n", "90", "94", "9u"], function (a, b, c, d, e) {
        var f = function (f, g, h) {
            var i = f.property().getText(g), j = a.filter(e.splits(i, h), function (a) {
                return a.length > 0
            });
            if (j.length <= 1) return [c.range(g, 0, i.length)];
            f.property().setText(g, j[0]);
            var k = d.generate(j.slice(1), function (a, d) {
                var e = f.create().text(a), g = c.range(e, d, d + a.length);
                return b.some(g)
            }, j[0].length), l = a.map(k, function (a) {
                return a.element()
            });
            return f.insert().afterAll(g, l), [c.range(g, 0, j[0].length)].concat(k)
        };
        return {subdivide: f}
    }),g("93", ["g", "p", "9c", "94"], function (a, b, c, d) {
        var e = function (e, f, g) {
            var h = a.bind(g, function (a) {
                return [a.start(), a.finish()]
            }), i = function (a, b) {
                return c.subdivide(e, a.element(), b)
            }, j = d.splits(f, h, i), k = function (c) {
                var f = d.sublist(j, c.start(), c.finish()), g = a.map(f, function (a) {
                    return a.element()
                }), h = a.map(g, e.property().getText).join("");
                return {elements: b.constant(g), word: c.word, exact: b.constant(h)}
            };
            return a.map(g, k)
        };
        return {separate: e}
    }),g("8s", [], function () {
        var a = function () {
            return "\ufeff"
        };
        return {zeroWidth: a}
    }),g("89", ["8s", "p"], function (a, b) {
        var c = "\\w'\\-\\u0100-\\u017F\\u00C0-\\u00FF" + a.zeroWidth() + "\\u2018\\u2019", d = "[^" + c + "]",
            e = "[" + c + "]";
        return {chars: b.constant(c), wordbreak: b.constant(d), wordchar: b.constant(e)}
    }),g("8a", ["4v"], function (a) {
        return function (b, c, d, e) {
            var f = function () {
                return new a(b, e.getOr("g"))
            };
            return {term: f, prefix: c, suffix: d}
        }
    }),g("8c", ["p", "n", "89", "8a"], function (a, b, c, d) {
        var e = function (c) {
            return d(c, a.constant(0), a.constant(0), b.none())
        }, f = function (a) {
            var e = "((?:^'?)|(?:" + c.wordbreak() + "+'?))" + a + "((?:'?$)|(?:'?" + c.wordbreak() + "+))",
                f = function (a) {
                    return a.length > 1 ? a[1].length : 0
                }, g = function (a) {
                    return a.length > 2 ? a[2].length : 0
                };
            return d(e, f, g, b.none())
        };
        return {token: e, word: f}
    }),g("8b", ["8c"], function (a) {
        var b = function (a) {
            return a.replace(/[-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
        }, c = function (c) {
            var d = b(c);
            return a.word(d)
        }, d = function (c) {
            var d = b(c);
            return a.token(d)
        };
        return {sanitise: b, word: c, token: d}
    }),g("7n", ["89", "8a", "8b", "8c"], function (a, b, c, d) {
        var e = function (a) {
            return c.word(a)
        }, f = function (a) {
            return c.token(a)
        }, g = function (a, c, d, e) {
            return b(a, c, d, e)
        }, h = function (a) {
            return d.word(a)
        }, i = function (a) {
            return d.token(a)
        }, j = function (a) {
            return c.sanitise(a)
        }, k = function () {
            return a.chars()
        }, l = function () {
            return a.wordbreak()
        }, m = function () {
            return a.wordchar()
        };
        return {
            safeword: e,
            safetoken: f,
            custom: g,
            unsafeword: h,
            unsafetoken: i,
            sanitise: j,
            chars: k,
            wordbreak: l,
            wordchar: m
        }
    }),g("9h", ["p"], function (a) {
        var b = function (b, c) {
            for (var d = c.term(), e = [], f = d.exec(b); f;) {
                var g = f.index + c.prefix(f), h = f[0].length - c.prefix(f) - c.suffix(f);
                e.push({start: a.constant(g), finish: a.constant(g + h)}), d.lastIndex = g + h, f = d.exec(b)
            }
            return e
        };
        return {all: b}
    }),g("9i", ["g", "1l", "9h", "12"], function (a, b, c, d) {
        var e = function (a) {
            var b = d.prototype.slice.call(a, 0);
            return b.sort(function (a, b) {
                return a.start() < b.start() ? -1 : b.start() < a.start() ? 1 : 0
            }), b
        }, f = function (d, f) {
            var g = a.bind(f, function (e) {
                var f = c.all(d, e.pattern());
                return a.map(f, function (a) {
                    return b.merge(e, {start: a.start, finish: a.finish})
                })
            });
            return e(g)
        };
        return {search: f}
    }),g("95", ["9h", "9i"], function (a, b) {
        var c = function (b, c) {
            return a.all(b, c)
        }, d = function (a, c) {
            return b.search(a, c)
        };
        return {findall: c, findmany: d}
    }),g("8r", ["g", "n", "8z", "90", "91", "92", "93", "7n", "94", "95"], function (a, b, c, d, e, f, g, h, i, j) {
        var k = function (a, c) {
            return i.generate(c, function (c, e) {
                var f = e + a.property().getText(c).length;
                return b.from(d.range(c, e, f))
            })
        }, l = function (b, c, d, h) {
            var i = e.group(b, c, h), l = a.bind(i, function (c) {
                var e = f.justText(c), h = a.map(e, b.property().getText).join(""), i = j.findmany(h, d), l = k(b, e);
                return g.separate(b, l, i)
            });
            return l
        }, m = function (b, d, e, f) {
            var g = a.map(e, function (a) {
                var b = h.safeword(a);
                return c(a, b)
            });
            return l(b, d, g, f)
        }, n = function (a, b, d, e) {
            var f = c(d, h.safetoken(d));
            return l(a, b, [f], e)
        };
        return {safeWords: m, safeToken: n, run: l}
    }),g("88", ["8r"], function (a) {
        var b = function (b, c, d, e) {
            return a.run(b, c, d, e)
        }, c = function (b, c, d, e) {
            return a.safeWords(b, c, d, e)
        }, d = function (b, c, d, e) {
            return a.safeToken(b, c, d, e)
        };
        return {safeWords: c, safeToken: d, run: b}
    }),g("7m", ["87", "88"], function (a, b) {
        var c = a(), d = function (a, d, e) {
            return b.run(c, a, d, e)
        }, e = function (a, d, e) {
            return b.safeWords(c, a, d, e)
        }, f = function (a, d, e) {
            return b.safeToken(c, a, d, e)
        };
        return {safeWords: e, safeToken: f, run: d}
    }),g("1z", ["20"], function (a) {
        var b = function (b) {
            return a.first(b).isSome()
        }, c = function (b, c, d) {
            return a.ancestor(b, c, d).isSome()
        }, d = function (b, c) {
            return a.sibling(b, c).isSome()
        }, e = function (b, c) {
            return a.child(b, c).isSome()
        }, f = function (b, c) {
            return a.descendant(b, c).isSome()
        }, g = function (b, c, d) {
            return a.closest(b, c, d).isSome()
        };
        return {any: b, ancestor: c, sibling: d, child: e, descendant: f, closest: g}
    }),g("6l", ["g", "n", "7m", "7n", "2c", "j", "5d", "k", "1x", "29", "1d", "1z", "7o", "3f"], function (a, b, c, d, e, f, g, h, i, j, k, l, m, n) {
        var o = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\.\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w\.]+@)[A-Za-z0-9\.\-]+)(:[0-9]+)?((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-_.~*+=!&;:'%@?^${}()\w,]*)#?(?:[\-_.~*+=!&;:'%@?^${}()\w,\/]*))?)/g,
            p = o.source, q = 3, r = 9, s = function (a) {
                var b = e.immutable("word", "pattern"), f = d.unsafetoken(p), g = b("__INTERNAL__", f);
                return c.run(a, [g])
            }, t = function (a) {
                return !l.closest(a, "a")
            }, u = function (a) {
                return b.from(a[0]).filter(t).map(function (b) {
                    var c = h.fromTag("a");
                    return i.before(b, c), j.append(c, a), f.set(c, "href", m.get(c)), c
                })
            }, v = function (b) {
                var c = s(b);
                a.each(c, function (a) {
                    var b = a.exact();
                    (b.indexOf("@") < 0 || w(b)) && u(a.elements())
                })
            }, w = function (a) {
                var b = a.indexOf("://");
                return b >= q && b <= r
            }, x = function (b) {
                a.each(b, function (a) {
                    k.isElement(a) && g.getRaw(a, "position").isSome() && g.remove(a, "position")
                })
            }, y = function (b) {
                var c = a.filter(b, function (a) {
                    return "li" === k.name(a)
                });
                if (c.length > 0) {
                    var d = n.prevSiblings(c[0]), e = h.fromTag("ul");
                    if (i.before(b[0], e), d.length > 0) {
                        var f = h.fromTag("li");
                        i.append(e, f), j.append(f, d)
                    }
                    j.append(e, c)
                }
            };
        return {links: v, position: x, list: y}
    }),g("55", ["g", "6k", "6l", "6m", "6h", "3f"], function (a, b, c, d, e, f) {
        var g = function (b) {
            var d = f.children(b);
            a.each([c.links, c.position, c.list], function (a) {
                a(d)
            })
        }, h = function (a, c, f, h, i) {
            g(f);
            var j = e.get(f), k = b.derive(i, h, c);
            return d.go(a, j, k)
        };
        return {go: h, preprocess: g}
    }),g("6i", ["4q", "4r", "4y", "2w", "2t", "55", "2f", "28", "1f"], function (a, b, c, d, e, f, g, h, i) {
        var j = e.detect(), k = function (a, b, c, d) {
            try {
                var e = f.go(a, j, b, c, d), k = void 0 !== e && null !== e && e.length > 0, l = k ? h.fromHtml(e) : [];
                return g.value(l)
            } catch (m) {
                return i.error(m), g.error("errors.paste.process.failure")
            }
        }, l = function (e, f, g, h, i) {
            var j = k(e, f, h, g);
            return j.fold(function (b) {
                return a.error(b)
            }, function (e) {
                return a.sync(function (f) {
                    i.get(function (g) {
                        var h = c.findImages(e, g);
                        a.call(f, {response: d.paste(e, g, h), bundle: b.nu({})})
                    })
                })
            })
        };
        return {transfer: l}
    }),g("53", ["6i", "g", "o", "n", "1y", "3f"], function (a, b, c, d, e, f) {
        var g = function (b, c, d, e, f) {
            return a.transfer(b, c, e, d, f)
        }, h = function (g, h, i) {
            var j = !1, k = !0, l = function (a, b) {
                return void 0 === h || b ? d.none() : h.findClipboardTags(f.children(a))
            }, m = l(i, j).getOr([]);
            b.each(m, e.remove);
            var n = c.nu(function (a) {
                a([])
            });
            return a.transfer(g, i, j, k, n)
        };
        return {internal: h, external: g}
    }),g("6j", ["g", "k", "6h", "7o"], function (a, b, c, d) {
        var e = function (a) {
            var e = b.fromTag("div");
            return d.set(e, a), c.get(e)
        }, f = function (b) {
            var c = b.trim().split(/\n{2,}|(?:\r\n){2,}/), d = a.map(c, function (a) {
                return a.split(/\n|\r\n/).join("<br />")
            });
            return 1 === d.length ? d[0] : a.map(d, function (a) {
                return "<p>" + a + "</p>"
            }).join("")
        };
        return {encode: e, convert: f}
    }),g("54", ["4q", "6j", "4r", "31", "2w", "n", "23", "28", "11"], function (a, b, c, d, e, f, g, h, i) {
        var j = function (a) {
            return a.length > 0
        }, k = function (a) {
            return d.isValidData(a) ? g.findMap(a.types, function (b) {
                return "text/plain" === b ? f.some(a.getData(b)) : f.none()
            }) : f.none()
        }, l = function () {
            var a = i.clipboardData;
            return void 0 !== a ? f.some(a.getData("text")) : f.none()
        }, m = function (a) {
            var c = b.encode(a), d = b.convert(c), f = h.fromHtml(d);
            return e.paste(f, [], [])
        }, n = function (b) {
            return a.sync(function (f) {
                var g = d.isValidData(b) ? k : l, h = g(b).filter(j).fold(e.cancel, m);
                a.call(f, {response: h, bundle: c.nu({})})
            })
        };
        return {handle: n}
    }),g("34", ["4q", "4r", "4z", "51", "52", "53", "54", "2w", "2t", "55", "p", "k", "29", "3f", "1f"], function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) {
        var p = i.detect(), q = function (a, b, c) {
            return g.handle(a)
        }, r = function (b, c) {
            var d = function (b, d, e) {
                var f = l.fromTag("div");
                m.append(f, b), j.preprocess(f);
                var g = n.children(f);
                return a.pure({response: h.paste(g, d, e), bundle: c.bundle()})
            }, e = k.curry(a.pass, c);
            return h.cata(c.response(), e, d, e, d)
        }, s = function (a, b) {
            return function (d, e) {
                var g = e.bundle();
                return c.proxyBin(g).handle("There was no proxy bin setup. Ensure you have run proxyStep first.", function (c) {
                    var d = n.owner(a);
                    return f.internal(d, b, c)
                })
            }
        }, t = function (a, b) {
            return function (d, e) {
                var g = e.bundle();
                return c.proxyBin(g).handle("There was no proxy bin setup. Ensure you have run proxyStep first.", function (d) {
                    var e = c.merging(g), h = c.isWord(g), i = c.isInternal(g), j = c.backgroundAssets(g),
                        k = n.owner(a);
                    return i ? f.internal(k, b, d) : f.external(k, d, e, h, j)
                })
            }
        }, u = function () {
            return function (b, c) {
                return a.error("errors.local.images.disallowed")
            }
        }, v = function () {
            return function (b, c) {
                if (p.browser.isSafari()) {
                    var d = p.deviceType.isWebView() ? "webview.imagepaste" : "safari.imagepaste";
                    return a.error(d)
                }
                return e.handle(b)
            }
        }, w = function (a) {
            return function (b, e) {
                var f = c.mergeOffice(e.bundle());
                return d.handle(b, f, a)
            }
        }, x = function (b, c) {
            return a.cancel()
        }, y = function (c) {
            return function (d, e) {
                var f = b.merge(e.bundle(), b.nu(c));
                return a.pure({response: e.response(), bundle: f})
            }
        };
        return {plain: q, autolink: r, noImages: u, images: v, internal: s, external: t, gwt: w, setBundle: y, none: x}
    }),g("56", ["5c", "p"], function (a, b) {
        var c = a.resolve("smartpaste-eph-bin");
        return {binStyle: b.constant(c)}
    }),g("57", ["6m", "j", "6h", "6n"], function (a, b, c, d) {
        var e = function (a, c) {
            return d.descendant(a, function (a) {
                return !!b.has(a, "style") && b.get(a, "style").indexOf("mso-") > -1
            })
        }, f = function (b, d) {
            var e = c.get(b);
            return a.isWordContent(e, d)
        }, g = function (a, b) {
            var c = a.browser, d = c.isIE() && c.version.major >= 11 ? e : f;
            return d(b, a)
        };
        return {isWord: g}
    }),g("35", ["4q", "4r", "56", "2t", "57", "27", "3f"], function (a, b, c, d, e, f, g) {
        var h = d.detect();
        return function (d, i, j, k, l) {
            return function (m, n) {
                var o = l(), p = n.response();
                return a.sync(function (l) {
                    var n = d(j);
                    n.events.after.bind(function (d) {
                        var j = d.container();
                        i(j), f.add(j, c.binStyle());
                        var m = e.isWord(h, j), n = g.children(j), q = k.findClipboardTags(n, m).isSome();
                        a.call(l, {
                            response: p,
                            bundle: b.nu({isWord: m, isInternal: q, proxyBin: j, backgroundAssets: o})
                        })
                    }), o.convert(m.data()), n.run()
                })
            }
        }
    }),g("8d", ["78", "79", "12", "62", "13", "8o"], function (a, b, c, d, e, f) {
        var g = function (a) {
            for (var b = new c(a.length / 2), e = 0; e < a.length; e += 2) {
                var g = a.substr(e, 2), h = d.floor(e / 2);
                b[h] = f(g, 16)
            }
            return b
        }, h = function (c, d) {
            if (0 === c.length) throw"Zero length content passed to Hex conversion";
            var e = g(c), f = b(e);
            return a([f], {type: d})
        };
        return {convert: h}
    }),g("7q", ["1m"], function (a) {
        var b = a.generate([{unsupported: ["id", "message"]}, {supported: ["id", "contentType", "blob"]}]),
            c = function (a, b, c) {
                return a.fold(b, c)
            };
        return {unsupported: b.unsupported, supported: b.supported, cata: c}
    }),g("8e", ["p", "n"], function (a, b) {
        var c = "{\\pict{", d = "i", e = "{\\shp{", f = "s", g = function (a, b, c) {
            return b.indexOf(a, c)
        }, h = function (c, d, e, f, g) {
            return c === -1 || d === -1 ? b.none() : b.some({
                start: a.constant(c),
                end: a.constant(d),
                bower: e,
                regex: a.constant(f),
                idRef: a.constant(g)
            })
        }, i = function (a, b, c) {
            return function () {
                return a.substring(b, c)
            }
        }, j = function (a, b) {
            if (b === -1) return b;
            var c, d, e = 0, f = a.length;
            do if (c = a.indexOf("{", b), d = a.indexOf("}", b), d > c && c !== -1 ? (b = c + 1, ++e) : (c > d || c < 0) && d !== -1 && (b = d + 1, --e), b > f || d === -1) return -1; while (e > 0);
            return b
        }, k = function (a, b, c, e) {
            var f = i(a, c, e), g = /[^a-fA-F0-9]([a-fA-F0-9]+)\}$/;
            return h(c, e, f, g, d)
        }, l = function (a, b, c, d) {
            var e = i(a, c, d), g = /([a-fA-F0-9]{64,})(?:\}.*)/;
            return h(c, d, e, g, f)
        }, m = function (d, f) {
            var h = g(c, d, f), i = j(d, h), m = g(e, d, f), n = j(d, m), o = a.curry(l, d, f, m, n),
                p = a.curry(k, d, f, h, i);
            return h === -1 && m === -1 ? b.none() : h === -1 ? o() : m === -1 ? p() : m < h && n > i ? p() : h < m && i > n ? o() : h < m ? p() : m < h ? o() : b.none()
        };
        return {identify: m, endBracket: j}
    }),g("7p", ["8d", "7q", "8e", "n", "2f"], function (a, b, c, d, e) {
        var f = function (a, b) {
            return c.identify(a, b)
        }, g = function (a) {
            return a.indexOf("\\pngblip") >= 0 ? e.value("image/png") : a.indexOf("\\jpegblip") >= 0 ? e.value("image/jpeg") : e.error("errors.imageimport.unsupported")
        }, h = function (a) {
            return a.replace(/\r/g, "").replace(/\n/g, "")
        }, i = function (a, b) {
            var c = a.match(b);
            return c && c[1] && c[1].length % 2 === 0 ? e.value(c[1]) : e.error("errors.imageimport.invalid")
        }, j = function (a) {
            var b = a.match(/\\shplid(\d+)/);
            return null !== b ? d.some(b[1]) : d.none()
        }, k = function (c) {
            var d = c.bower(), e = c.regex();
            return j(d).map(function (f) {
                var h = c.idRef() + f;
                return g(d).fold(function (a) {
                    return b.unsupported(h, a)
                }, function (c) {
                    return i(d, e).fold(function (a) {
                        return b.unsupported(h, a)
                    }, function (d) {
                        return b.supported(h, c, a.convert(d, c))
                    })
                })
            })
        }, l = function (a) {
            for (var b = [], c = function () {
                return a.length
            }, d = function (a) {
                var c = k(a);
                return b = b.concat(c.toArray()), a.end()
            }, e = 0; e < a.length;) e = f(a, e).fold(c, d);
            return b
        }, m = function (a) {
            var b = h(a);
            return l(b)
        };
        return {nextBower: f, extractId: j, extractContentType: g, extractHex: i, images: m}
    }),g("6o", ["7p", "7q", "2f"], function (a, b, c) {
        var d = function (b) {
            return a.images(b)
        }, e = function (a) {
            return b.cata(a, function (a, b) {
                return a
            }, function (a, b, c) {
                return a
            })
        }, f = function (a) {
            return b.cata(a, function (a, b) {
                return c.error(b)
            }, function (a, b, d) {
                return c.value(d)
            })
        };
        return {images: d, toId: e, toBlob: f}
    }),g("6p", ["6o", "4y", "g", "i", "n", "j", "27", "1f"], function (a, b, c, d, e, f, g, h) {
        var i = function (b, d, f) {
            var g = c.find(d, function (c) {
                return a.toId(c) === b
            });
            return e.from(g)
        }, j = function (a, b, c) {
            return e.from(b[c])
        }, k = {local: j, code: i}, l = function (b) {
            var d = [], e = function (b) {
                return !c.exists(d, function (c) {
                    return a.toId(c) === b
                })
            };
            return c.bind(b, function (b) {
                var c = a.toId(b);
                return e(c) ? (d.push(b), [b]) : []
            })
        }, m = function (i, j, m, n) {
            var o = l(j), p = [], q = !1, r = c.bind(i, function (b, c) {
                var d = f.get(b, "data-image-type"), i = f.get(b, "data-image-id");
                g.remove(b, "rtf-data-image"), f.remove(b, "data-image-type"), f.remove(b, "data-image-id");
                var j = void 0 !== k[d] ? k[d] : e.none;
                return j(i, o, c).fold(function () {
                    return h.log("WARNING: unable to find data for image ", b.dom()), []
                }, function (c) {
                    return a.toBlob(c).fold(function (a) {
                        return q = !0, f.set(b, "alt", n(a)), []
                    }, function (a) {
                        return p.push(b), [a]
                    })
                })
            });
            d.multiple(r).get(function (a) {
                var c = b.updateSources(a, p);
                m(a, c, q)
            })
        };
        return {convert: m}
    }),g("59", ["6o", "6p", "5a", "21", "22", "3f"], function (a, b, c, d, e, f) {
        return function (g) {
            var h = g.translations, i = e.create({
                insert: d(["elements", "assets", "correlated"]),
                incomplete: d(["elements", "assets", "correlated", "message"])
            }), j = function (d, e, g, j, k) {
                var l = a.images(j), m = c.find(d);
                b.convert(m, l, function (a, b, c) {
                    var h = f.children(d), j = a.concat(e), l = b.concat(g);
                    c ? i.trigger.incomplete(h, j, l, "errors.imageimport.failed") : i.trigger.insert(h, j, l), k()
                }, h)
            };
            return {events: i.registry, processRtf: j}
        }
    }),g("58", ["59", "g", "5a", "21", "22", "1y", "3f"], function (a, b, c, d, e, f, g) {
        return function (h, i) {
            var j = e.create({
                error: d(["message"]),
                insert: d(["elements", "assets", "correlated"]),
                incomplete: d(["elements", "assets", "correlated", "message"])
            }), k = a(i);
            k.events.incomplete.bind(function (a) {
                j.trigger.incomplete(a.elements(), a.assets(), a.correlated(), a.message())
            }), k.events.insert.bind(function (a) {
                j.trigger.insert(a.elements(), a.assets(), a.correlated())
            });
            var l = function (a, d, e) {
                var l = function (b) {
                    k.processRtf(a, d, e, b.rtf(), b.hide())
                }, m = function (h) {
                    var i = c.find(a);
                    b.each(i, f.remove), j.trigger.incomplete(g.children(a), d, e, h)
                }, n = function () {
                    var h = c.find(a);
                    b.each(h, f.remove), j.trigger.insert(g.children(a), d, e)
                }, o = function (a) {
                    m(a.message())
                };
                if (i.allowLocalImages === !0 && i.enableFlashImport === !0) {
                    var p = h(i);
                    p.events.response.bind(l), p.events.cancel.bind(n), p.events.failed.bind(o), p.events.error.bind(o), p.open()
                } else m("errors.local.images.disallowed")
            };
            return {events: j.registry, gordon: l}
        }
    }),g("36", ["4q", "4r", "58", "59", "2w", "g", "5a", "p", "n", "z", "k", "29", "1y", "3f"], function (a, b, c, d, e, f, g, h, i, j, k, l, m, n) {
        return function (o, p) {
            var q = c(o, p), r = d(p), s = j(i.none()), t = function (c) {
                s.get().each(function (d) {
                    a.call(d, {response: c, bundle: b.nu({})})
                })
            };
            return q.events.insert.bind(function (a) {
                t(e.paste(a.elements(), a.assets(), a.correlated()))
            }), q.events.incomplete.bind(function (a) {
                t(e.incomplete(a.elements(), a.assets(), a.correlated(), a.message()))
            }), q.events.error.bind(function (a) {
                var b = a.message(), c = e.error(b);
                t(c)
            }), r.events.insert.bind(function (a) {
                t(e.paste(a.elements(), a.assets(), a.correlated()))
            }), r.events.incomplete.bind(function (a) {
                t(e.incomplete(a.elements(), a.assets(), a.correlated(), a.message()))
            }), function (b, c) {
                return a.sync(function (d) {
                    var j = function () {
                        a.call(d, {response: c.response(), bundle: c.bundle()})
                    }, o = function (a, c, o) {
                        s.set(i.some(d));
                        var u = k.fromTag("div");
                        l.append(u, a), b.rtf().fold(function () {
                            g.exists(u) ? q.gordon(u, c, o) : j()
                        }, function (a) {
                            if (p.allowLocalImages === !0) r.processRtf(u, c, o, a, h.noop); else {
                                var b = g.find(u), d = n.children(u);
                                b.length > 0 ? (f.each(b, m.remove), t(e.incomplete(d, c, o, "errors.local.images.disallowed"))) : t(e.paste(d, c, o))
                            }
                        })
                    };
                    e.cata(c.response(), j, o, j, o)
                })
            }
        }
    }),g("1p", ["2z", "30", "31", "32", "33", "34", "35", "36", "2t", "p", "n", "2c", "37", "11"], function (a, b, c, d, e, f, g, h, i, j, k, l, m, n) {
        var o = l.immutable("data", "rtf"), p = i.detect(), q = "^image/", r = "file", s = [q, r], t = "html",
            u = "rtf", v = function (a) {
                return m.contains(a, "<html") && (m.contains(a, 'xmlns:o="urn:schemas-microsoft-com:office:office"') || m.contains(a, 'xmlns:x="urn:schemas-microsoft-com:office:excel"'))
            }, w = function (a) {
                var b = a.clipboardData;
                return c.isValidData(b) ? c.getFlavor(b.types, t).bind(function (c) {
                    var d = b.getData(c.type);
                    return v(d) ? k.some(o(d, C(a))) : k.none()
                }) : k.none()
            }, x = function (a) {
                return o(a, k.none())
            }, y = function (a) {
                if (p.browser.isIE() || p.browser.isFirefox()) return k.none();
                if (c.isValidData(a.clipboardData)) {
                    var b = a.clipboardData;
                    return c.getPreferredFlavor(s, b.types).map(function (a) {
                        return b.items;
                    })
                }
                return k.none()
            }, z = function (a, b) {
                var d = c.isValidData(b.clipboardData) ? b.clipboardData.types : [];
                return c.getFlavor(d, a.clipboardType()).map(function (a) {
                    return o(b, k.none())
                })
            }, A = function (a) {
                return p.browser.isIE() ? k.some(n.clipboardData) : c.isValidData(a.clipboardData) ? k.some(a.clipboardData) : k.none()
            }, B = function (a) {
                if (p.browser.isSpartan()) return k.none();
                var b = a.clipboardData, d = c.isValidData(b) ? b.types : [];
                return 1 === d.length && "text/plain" === d[0] ? k.some(b) : k.none()
            }, C = function (a) {
                var b = a.clipboardData;
                return c.isValidData(b) ? c.getFlavor(b.types, u).bind(function (a) {
                    var c = b.getData(a.type);
                    return c.length > 0 ? k.some(c) : k.none()
                }) : k.none()
            }, D = function (a, b, c, d) {
                return {label: j.constant(a), getAvailable: b, steps: j.constant(c), capture: j.constant(d)}
            }, E = function (c, d, h, i) {
                var k = j.curry(z, i);
                return D("Within Textbox.io (tables) pasting", k, [a.normal(g(d, c, h, i, b.ignore)), a.normal(e.fixed(!0, !0)), a.normal(f.internal(h, i))], !1)
            }, F = function (c, i, j, k, l, m, n) {
                return D("Outside of Textbox.io pasting (could be internal but another browser)", x, [a.normal(g(k, j, l, n, b.background)), a.normal(e.fromConfigIfExternal(c, i)), a.normal(f.external(l, n)), a.blocking(h(m, i)), a.normal(d(i))], !1)
            }, G = function (b, c, d, g) {
                return D("GWT pasting", w, [a.normal(f.setBundle({isWord: !0})), a.normal(e.fromConfig(c, d)), a.normal(f.gwt(b)), a.blocking(h(g, d))], !0)
            }, H = function (b) {
                return D("Image pasting", y, [a.normal(b.allowLocalImages === !1 ? f.noImages(j.noop) : f.images())], !0)
            }, I = function () {
                return D("Only plain text is available to paste", B, [a.normal(f.plain), a.normal(f.autolink)], !0)
            }, J = function () {
                return D("Plain text pasting", A, [a.normal(f.plain), a.normal(f.autolink)], !0)
            }, K = function () {
                return D("There is no valid way to paste", k.some, [a.normal(f.none)], !1)
            };
        return {internal: E, pastiche: F, gwt: G, image: H, text: J, onlyText: I, none: K}
    }),g("5b", ["5c", "2t", "j", "27", "k", "6h", "29"], function (a, b, c, d, e, f, g) {
        var h = function () {
            var a = b.detect(), c = a.os.isOSX();
            return c ? ["\u2318"] : ["Ctrl"]
        }, i = function (a) {
            return e.fromHtml("<p>" + a("cement.dialog.flash.press-escape") + "</p>")
        }, j = function (b) {
            var c = e.fromTag("div");
            d.add(c, a.resolve("flashbin-helpcopy"));
            var f = h(), j = e.fromHtml("<p>" + b("cement.dialog.flash.trigger-paste") + "</p>"),
                k = e.fromHtml('<div><span class="ephox-polish-help-kbd">' + f + '</span> + <span class="ephox-polish-help-kbd">V</span></div>');
            return d.add(k, a.resolve("flashbin-helpcopy-kbd")), g.append(c, [j, k, i(b)]), c
        }, k = function (b) {
            var c = e.fromTag("div");
            d.add(c, a.resolve("flashbin-helpcopy"));
            var f = e.fromHtml("<p>" + b("cement.dialog.flash.missing") + "</p>");
            return g.append(c, [f, i(b)]), c
        }, l = function (b) {
            var h = e.fromTag("div");
            d.add(h, a.resolve("flashbin-loading"));
            var i = e.fromTag("div");
            d.add(i, a.resolve("flashbin-loading-spinner"));
            var j = e.fromTag("p"), k = b("loading.wait");
            return f.set(j, k), c.set(j, "aria-label", k), g.append(h, [i, j]), h
        };
        return {paste: j, noflash: k, indicator: l}
    }),h("5e", navigator),g("38", ["5b", "5c", "2t", "p", "27", "5d", "k", "1x", "29", "5e"], function (a, b, c, d, e, f, g, h, i, j) {
        var k = c.detect(), l = function () {
            return new ActiveXObject("ShockwaveFlash.ShockwaveFlash")
        }, m = function () {
            try {
                var a = k.browser.isIE() ? l() : j.plugins["Shockwave Flash"];
                return void 0 !== a
            } catch (b) {
                return !1
            }
        }, n = function (b, c, e, f) {
            var g = a.noflash(f);
            return h.append(b, g), {reset: d.noop}
        }, o = function (b, c, d, e) {
            var g = a.paste(e), h = a.indicator(e);
            i.append(b, [h, g, c.element()]);
            var j = function () {
                f.setAll(h, {height: "0", padding: "0"})
            }, k = function () {
                f.set(g, "display", "block"), f.set(h, "display", "none"), d()
            }, l = function () {
                f.set(g, "display", "none"), f.set(h, "display", "block"), f.remove(h, "height"), f.remove(h, "padding"), d()
            };
            return c.events.spin.bind(l), c.events.reset.bind(k), c.events.hide.bind(j), {reset: k}
        };
        return function (a, c, f) {
            var h = g.fromTag("div"), i = "flashbin-wrapper-" + (k.os.isOSX() ? "cmd" : "ctrl");
            e.add(h, b.resolve(i));
            var j = m() ? o : n, l = j(h, a, c, f.translations);
            return {element: d.constant(h), reset: l.reset}
        }
    }),h("5k", clearInterval),h("5m", setInterval),g("5f", ["n", "21", "22", "z", "5k", "5m"], function (a, b, c, d, e, f) {
        var g = function () {
            var g = d(a.none()), h = c.create({crashed: b([]), timeout: b([])}), i = function (b, c, d, i) {
                var j = c, k = f(function () {
                    d() ? e(k) : j <= 0 ? (h.trigger.timeout(), e(k)) : i() && (e(k), h.trigger.crashed()), j--
                }, b);
                g.set(a.some(k))
            }, j = function () {
                g.get().each(function (a) {
                    e(a)
                })
            };
            return {start: i, stop: j, events: h.registry}
        };
        return {responsive: g}
    }),g("5g", ["1b", "g", "5k", "5m"], function (a, b, c, d) {
        return function (e, f, g) {
            var h = function (c) {
                return b.forall(f, function (b) {
                    return a.isFunction(c[b])
                })
            }, i = function () {
                var b = e.dom();
                a.isFunction(b.PercentLoaded) && 100 === b.PercentLoaded() && h(b) && (l(), g())
            }, j = !0, k = d(i, 500), l = function () {
                j && (c(k), j = !1)
            };
            return {stop: l}
        }
    }),g("6t", ["72"], function (a) {
        var b = function (a, b) {
            return void 0 !== a[b] && null !== a[b] || (a[b] = {}), a[b]
        }, c = function (c, d) {
            for (var e = d || a, f = c.split("."), g = 0; g < f.length; ++g) e = b(e, f[g]);
            return e
        };
        return {namespace: c}
    }),g("5h", ["6t"], function (a) {
        var b = function (b) {
            var c = a.namespace(b);
            c.callbacks = {};
            var d = 0, e = function () {
                var a = "callback_" + d;
                return d++, a
            }, f = function (a) {
                return b + ".callbacks." + a
            }, g = function (a, b) {
                var d = e();
                return c.callbacks[d] = function () {
                    b || j(d), a.apply(null, arguments)
                }, f(d)
            }, h = function (a) {
                return g(a, !1)
            }, i = function (a) {
                return g(a, !0)
            }, j = function (a) {
                var b = a.substring(a.lastIndexOf(".") + 1);
                void 0 !== c.callbacks[b] && delete c.callbacks[b]
            };
            return c.ephemeral = h, c.permanent = i, c.unregister = j, c
        };
        return {install: b}
    }),g("5j", ["p", "n", "3n", "k", "6n", "3f", "1g"], function (a, b, c, d, e, f, g) {
        var h = function (a) {
            a.dom().focus()
        }, i = function (a) {
            a.dom().blur()
        }, j = function (a) {
            var b = f.owner(a).dom();
            return a.dom() === b.activeElement
        }, k = function (a) {
            var c = void 0 !== a ? a.dom() : g;
            return b.from(c.activeElement).map(d.fromDom)
        }, l = function (b) {
            var d = f.owner(b), g = k(d).filter(function (d) {
                return e.closest(d, a.curry(c.eq, b))
            });
            g.fold(function () {
                h(b)
            }, a.noop)
        }, m = function (a) {
            return k(f.owner(a)).filter(function (b) {
                return a.dom().contains(b.dom())
            })
        };
        return {hasFocus: j, focus: h, blur: i, active: k, search: m, focusInside: l}
    }),h("5l", clearTimeout),h("5n", unescape),g("39", ["5f", "5g", "5c", "g", "1c", "1s", "2t", "5h", "p", "n", "21", "22", "5i", "27", "5d", "k", "5j", "1x", "5k", "5l", "1f", "5m", "x", "5n", "11"], function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) {
        var z = h.install("ephox.flash"), A = g.detect(), B = j.none();
        return function (g) {
            var h = l.create({
                response: k(["rtf"]),
                spin: k([]),
                cancel: k([]),
                error: k(["message"]),
                reset: k([]),
                hide: k([]),
                failed: k(["message"])
            }), j = !1, s = p.fromTag("div");
            n.add(s, c.resolve("flashbin-target"));
            var v = a.responsive();
            v.events.crashed.bind(function () {
                h.trigger.failed("flash.crashed")
            }), v.events.timeout.bind(function () {
                h.trigger.failed("flash.crashed")
            });
            var C = function (a) {
                v.stop(), w(function () {
                    "" === a ? h.trigger.error("flash.crashed") : h.trigger.response(x(a))
                }, 0)
            }, D = function () {
                if (N.stop(), !j) {
                    j = !0;
                    try {
                        var a = L.dom();
                        e.each(J, function (b, c) {
                            var d = a[c];
                            if (void 0 === d) throw'Flash object does not have the method "' + c + '"';
                            d.call(a, b)
                        }), h.trigger.reset(), S(), P()
                    } catch (b) {
                        u.log("Flash dialog - Error during load: ", b)
                    }
                }
            }, E = z.permanent(D), F = function () {
                return !m.inBody(L)
            }, G = function () {
                return !L.dom().SetVariable
            }, H = function () {
                v.start(1e3, 10, F, G), h.trigger.spin()
            }, I = function (a) {
                v.stop(), h.trigger.error(a)
            }, J = {
                setSpinCallback: z.permanent(H),
                setPasteCallback: z.permanent(C),
                setEscapeCallback: z.permanent(h.trigger.cancel),
                setErrorCallback: z.permanent(I),
                setStartPasteCallback: z.permanent(i.noop)
            }, K = function () {
                var a = g.replace(/^https?:\/\//, "//"), b = "onLoad=" + E,
                    c = '    <param name="allowscriptaccess" value="always">    <param name="wmode" value="opaque">    <param name="FlashVars" value="' + b + '">';
                if (A.browser.isIE() && 10 === A.browser.version.major) {
                    var d = f.generate("flash-bin");
                    return p.fromHtml('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="' + d + '"><param name="movie" value="' + a + '">' + c + "</object>")
                }
                return p.fromHtml('<object type="application/x-shockwave-flash" data="' + a + '">' + c + "</object>")
            }, L = K(), M = function () {
                o.setAll(L, {width: "2px", height: "2px"})
            };
            M();
            var N = b(L, e.keys(J), D);
            r.append(s, L);
            var O = function () {
                return s
            }, P = function () {
                A.browser.isFirefox() && y.getSelection().removeAllRanges(), q.focus(L)
            }, Q = null, R = function () {
                n.add(s, c.resolve("flash-activate")), o.remove(L, "height"), o.remove(L, "width"), h.trigger.hide()
            }, S = function () {
                t(Q), n.remove(s, c.resolve("flash-activate")), M()
            }, T = function () {
                Q = w(R, 3e3), h.trigger.spin(), o.set(s, "display", "block"), P()
            }, U = function () {
                o.set(s, "display", "none"), B.each(function (a) {
                    d.each(a, function (a) {
                        a.unbind()
                    })
                })
            }, V = function () {
                U(), d.each(e.values(J), function (a) {
                    z.unregister(a)
                }), z.unregister(E), N.stop()
            };
            return {focus: P, element: O, activate: T, deactivate: U, destroy: V, events: h.registry}
        }
    }),g("1q", ["38", "39", "21", "22", "w", "k", "11"], function (a, b, c, d, e, f, g) {
        return function (h, i) {
            var j = i.translations, k = d.create({
                response: c(["rtf", "hide"]),
                cancel: c([]),
                error: c(["message"]),
                failed: c(["message"])
            }), l = function () {
                var c = b(i.swf);
                c.deactivate();
                var d = f.fromDom(g), l = e.bind(d, "mouseup", c.focus), m = function () {
                    q()
                }, n = function () {
                    m(), k.trigger.cancel()
                };
                c.events.cancel.bind(n), c.events.response.bind(function (a) {
                    k.trigger.response(a.rtf(), m)
                }), c.events.error.bind(function (a) {
                    m(), k.trigger.error(a.message())
                }), c.events.failed.bind(function (a) {
                    m(), k.trigger.failed(a.message())
                });
                var o = h();
                o.setTitle(j("cement.dialog.flash.title"));
                var p = a(c, o.reflow, i);
                p.reset(), o.setContent(p.element()), o.events.close.bind(n), o.show(), c.activate();
                var q = function () {
                    l.unbind(), c.destroy(), o.destroy()
                }
            };
            return {open: l, events: k.registry}
        }
    }),g("5p", [], function () {
        var a = function (a, b) {
            return d(function (c, d, e) {
                return d(a, b)
            })
        }, b = function (a) {
            return d(function (b, c, d) {
                return b(a)
            })
        }, c = function (a) {
            return d(function (b, c, d) {
                return d(a)
            })
        }, d = function (a) {
            return {fold: a}
        };
        return {on: a, before: b, after: c}
    }),g("5o", ["5p", "2c", "k"], function (a, b, c) {
        var d = b.immutable("start", "soffset", "finish", "foffset"),
            e = b.immutable("start", "soffset", "finish", "foffset"), f = b.immutable("start", "finish"),
            g = function (b) {
                var d = c.fromDom(b.startContainer), e = c.fromDom(b.endContainer);
                return f(a.on(d, b.startOffset), a.on(e, b.endOffset))
            };
        return {read: d, general: e, write: f, writeFromNative: g}
    }),g("5q", [], function () {
        var a = function (a, b) {
            if (a.getSelection) return b(a, a.getSelection());
            throw"No selection model supported."
        };
        return {run: a}
    }),g("6v", ["3n", "3f"], function (a, b) {
        var c = function (c, d, e, f) {
            var g = b.owner(c), h = g.dom().createRange();
            h.setStart(c.dom(), d), h.setEnd(e.dom(), f);
            var i = a.eq(c, e) && d === f;
            return h.collapsed && !i
        };
        return {after: c}
    }),g("6u", ["5o", "6v", "k", "3f"], function (a, b, c, d) {
        var e = function (a) {
            return b.after(c.fromDom(a.anchorNode), a.anchorOffset, c.fromDom(a.focusNode), a.focusOffset)
        }, f = function (b, d) {
            var f = c.fromDom(d.startContainer), g = c.fromDom(d.endContainer);
            return e(b) ? a.read(g, d.endOffset, f, d.startOffset) : a.read(f, d.startOffset, g, d.endOffset)
        }, g = function (a) {
            return e(a)
        }, h = function (a, b, c, e) {
            return function (f) {
                if (f.extend) f.collapse(a.dom(), b), f.extend(c.dom(), e); else {
                    var g = d.owner(a).dom().createRange();
                    g.setStart(c.dom(), e), g.setEnd(a.dom(), b), f.removeAllRanges(), f.addRange(g)
                }
            }
        }, i = function (a, c, d, e) {
            return b.after(a, c, d, e)
        }, j = function () {
            return {flip: f, isRtl: g}
        }, k = function () {
            return {flip: h, isRtl: i}
        };
        return {read: j, write: k}
    }),g("5s", ["5o", "6u", "n", "6v", "k"], function (a, b, c, d, e) {
        var f = function (b, d) {
            var f = h(b, d.start(), d.finish());
            if (f.collapsed === !0) {
                var g = h(b, d.finish(), d.start());
                return g.collapsed === !0 ? c.none() : c.some(a.general(e.fromDom(g.endContainer), g.endOffset, e.fromDom(g.startContainer), g.startOffset))
            }
            return c.none()
        }, g = function (a, b) {
            var c = h(a, b.start(), b.finish());
            return c.collapsed === !0 ? h(a, b.finish(), b.start()) : c
        }, h = function (a, b, c) {
            var d = m(a);
            return b.fold(function (a) {
                d.setStartBefore(a.dom())
            }, function (a, b) {
                d.setStart(a.dom(), b)
            }, function (a) {
                d.setStartAfter(a.dom())
            }), c.fold(function (a) {
                d.setEndBefore(a.dom())
            }, function (a, b) {
                d.setEnd(a.dom(), b)
            }, function (a) {
                d.setEndAfter(a.dom())
            }), d
        }, i = function (a, b) {
            return h(a, b.start(), b.finish())
        }, j = function (a, b, c, e, f) {
            var g = d.after(b, c, e, f), h = a.document.createRange();
            return g ? (h.setStart(e.dom(), f), h.setEnd(b.dom(), c)) : (h.setStart(b.dom(), c), h.setEnd(e.dom(), f)), h
        }, k = function (a, b) {
            var c = i(a, b);
            return function (a) {
                a.addRange(c)
            }
        }, l = function (a, c) {
            var d = f(a, c);
            return d.fold(function () {
                return k(a, c)
            }, function (a) {
                return b.write().flip(a.start(), a.soffset(), a.finish(), a.foffset())
            })
        }, m = function (a) {
            return a.document.createRange()
        };
        return {create: m, build: l, toNative: i, forceRange: g, toExactNative: j}
    }),g("5r", ["g", "5s", "k", "1d", "2a", "2h"], function (a, b, c, d, e, f) {
        var g = function (a, b, c) {
            return a.selectNodeContents(c.dom()), a.compareBoundaryPoints(b.END_TO_START, b) < 1 && a.compareBoundaryPoints(b.START_TO_END, b) > -1
        }, h = function (b, c, d, h) {
            var i = b.document.createRange(), j = f.is(c, h) ? [c] : [], k = j.concat(e.descendants(c, h));
            return a.filter(k, function (a) {
                return g(i, d, a)
            })
        }, i = function (a, e, f) {
            var g = b.forceRange(a, e), i = c.fromDom(g.commonAncestorContainer);
            return d.isElement(i) ? h(a, i, g, f) : []
        };
        return {find: i}
    }),g("6w", ["g", "5o", "5p", "1d"], function (a, b, c, d) {
        var e = function (b, e) {
            var f = d.name(b);
            return "input" === f ? c.after(b) : a.contains(["br", "img"], f) ? 0 === e ? c.before(b) : c.after(b) : c.on(b, e)
        }, f = function (a) {
            var d = a.start().fold(c.before, e, c.after), f = a.finish().fold(c.before, e, c.after);
            return b.write(d, f)
        };
        return {beforeSpecial: e, preprocess: f}
    }),g("6x", ["g", "k", "1g"], function (a, b, c) {
        var d = function (d, e) {
            var f = e || c, g = f.createDocumentFragment();
            return a.each(d, function (a) {
                g.appendChild(a.dom())
            }), b.fromDom(g)
        };
        return {fromElements: d}
    }),g("5t", ["5o", "6u", "5s", "6w", "n", "k", "6x"], function (a, b, c, d, e, f, g) {
        var h = function (a) {
            return function (b, e) {
                var f = d.preprocess(a), g = c.build(b, f);
                void 0 !== e && null !== e && (e.removeAllRanges(), g(e))
            }
        }, i = function (a) {
            return function (b, d) {
                var e = c.create(b);
                e.selectNodeContents(a.dom()), d.removeAllRanges(), d.addRange(e)
            }
        }, j = function (a, b) {
            var c = b.getRangeAt(0), d = b.getRangeAt(b.rangeCount - 1), e = a.document.createRange();
            return e.setStart(c.startContainer, c.startOffset), e.setEnd(d.endContainer, d.endOffset), e
        }, k = function (c, d) {
            var e = f.fromDom(d.startContainer), g = f.fromDom(d.endContainer);
            return b.read().isRtl(c) ? b.read().flip(c, d) : a.read(e, d.startOffset, g, d.endOffset)
        }, l = function (a, b) {
            return void 0 !== b && null !== b && b.rangeCount > 0 ? e.from(j(a, b)) : e.none()
        }, m = function (a, b) {
            var c = l(a, b);
            return c.map(function (a) {
                return k(b, a)
            })
        }, n = function (a) {
            return function (b, c) {
                var d = l(b, c);
                d.each(function (c) {
                    o(b, c, a)
                })
            }
        }, o = function (a, b, c) {
            var d = g.fromElements(c, a.document);
            b.deleteContents(), b.insertNode(d.dom())
        }, p = function (a, b) {
            return function (e, f) {
                var g = d.preprocess(a), h = c.toNative(e, g);
                o(e, h, b)
            }
        }, q = function (a, b, d, e) {
            return function (f, g) {
                var h = c.toExactNative(f, a, b, d, e);
                h.deleteContents()
            }
        }, r = function (a, b, d, e) {
            return function (g, h) {
                var i = c.toExactNative(g, a, b, d, e), j = i.cloneContents();
                return f.fromDom(j)
            }
        }, s = function (a, b, d, f) {
            return function (g, h) {
                var i = c.toExactNative(g, a, b, d, f), j = i.getClientRects(),
                    k = j.length > 0 ? j[0] : i.getBoundingClientRect();
                return k.width > 0 || k.height > 0 ? e.some(k) : e.none()
            }
        }, t = function (a) {
            return function (b, d) {
                var f = c.create(b);
                f.selectNode(a.dom());
                var g = f.getBoundingClientRect();
                return g.width > 0 || g.height > 0 ? e.some(g) : e.none()
            }
        }, u = function (a, b) {
            a.getSelection().removeAllRanges()
        }, v = function (a, b, d, e) {
            return function (f, g) {
                var h = c.toExactNative(f, a, b, d, e);
                return h.toString()
            }
        };
        return {
            get: m,
            set: h,
            selectElementContents: i,
            replace: n,
            replaceRange: p,
            deleteRange: q,
            cloneFragment: r,
            rectangleAt: s,
            bounds: t,
            clearSelection: u,
            stringAt: v
        }
    }),g("3a", ["5o", "5p", "5q", "5r", "5s", "5t", "3n", "k"], function (a, b, c, d, e, f, g, h) {
        var i = function (a) {
            return c.run(a, f.get)
        }, j = function (a, b) {
            c.run(a, f.set(b))
        }, k = function (c, d, e, f, g) {
            var h = a.write(b.on(d, e), b.on(f, g));
            j(c, h)
        }, l = function (a, b) {
            c.run(a, f.selectElementContents(b))
        }, m = function (a, b) {
            c.run(a, f.replace(b))
        }, n = function (a, b, d) {
            c.run(a, f.replaceRange(b, d))
        }, o = function (a, b, d, e, g) {
            c.run(a, f.deleteRange(b, d, e, g))
        }, p = function (a, b, d, e, g) {
            return c.run(a, f.cloneFragment(b, d, e, g))
        }, q = function (a, b, c, d) {
            return g.eq(a, c) && b === d
        }, r = function (a, b, d, e, g) {
            return c.run(a, f.rectangleAt(b, d, e, g))
        }, s = function (a, b) {
            return c.run(a, f.bounds(b))
        }, t = function (a, b, c) {
            return d.find(a, b, c)
        }, u = function (c, d, e, f, g, h) {
            var i = a.write(b.on(d, e), b.on(f, g));
            return t(c, i, h)
        }, v = function (b, c) {
            var d = e.forceRange(b, c);
            return a.general(h.fromDom(d.startContainer), d.startOffset, h.fromDom(d.endContainer), d.endOffset)
        }, w = function (a) {
            c.run(a, f.clearSelection)
        }, x = function (a, b, d, e, g) {
            return c.run(a, f.stringAt(b, d, e, g))
        };
        return {
            get: i,
            set: j,
            setExact: k,
            selectElementContents: l,
            replace: m,
            replaceRange: n,
            deleteRange: o,
            isCollapsed: q,
            cloneFragment: p,
            rectangleAt: r,
            bounds: s,
            findWithin: t,
            findWithinExact: u,
            deriveExact: v,
            clearAll: w,
            stringAt: x
        }
    }),g("5u", ["p", "3n"], function (a, b) {
        return function (c, d, e, f) {
            var g = b.eq(c, e) && d === f;
            return {
                startContainer: a.constant(c),
                startOffset: a.constant(d),
                endContainer: a.constant(e),
                endOffset: a.constant(f),
                collapsed: a.constant(g)
            }
        }
    }),g("3b", ["5u", "k", "1x", "1y", "3f"], function (a, b, c, d, e) {
        return function (f) {
            var g = b.fromTag("br"), h = function (a, b) {
                a.dom().focus()
            }, i = function (a) {
                var b = e.owner(a);
                return b.dom().defaultView
            }, j = function (b, d) {
                var e = i(d);
                e.focus(), c.append(d, g), f.set(e, a(g, 0, g, 0))
            }, k = function () {
                d.remove(g)
            };
            return {cleanup: k, toOn: h, toOff: j}
        }
    }),g("3c", ["p"], function (a) {
        return function () {
            var b = function (a, b) {
                a.dom().focus()
            }, c = function (a, b) {
                b.dom().focus()
            }, d = a.identity;
            return {toOn: b, toOff: c, cleanup: d}
        }
    }),g("6y", ["g", "k", "1x", "29", "1y", "3f"], function (a, b, c, d, e, f) {
        var g = function (a, b) {
            f.nextSibling(a).filter(b).each(function (b) {
                var c = f.children(b);
                d.append(a, c), e.remove(b)
            }), i(a, b)
        }, h = function (a, g) {
            var h = f.children(a), i = b.fromTag("div", f.owner(a).dom());
            d.append(i, h), c.before(a, i), e.remove(a)
        }, i = function (b, c) {
            var d = f.children(b);
            a.each(d, function (a) {
                c(a) && h(a, b)
            })
        };
        return {consolidate: g}
    }),g("6z", ["3g"], function (a) {
        var b = a.create("ephox-sloth");
        return {resolve: b.resolve}
    }),g("70", ["5d"], function (a) {
        var b = function (a, b) {
            return function (d) {
                return "rtl" === c(d) ? b : a
            }
        }, c = function (b) {
            return "rtl" === a.get(b, "direction") ? "rtl" : "ltr"
        };
        return {onDirection: b, getDirection: c}
    }),g("5v", ["1s", "2c", "6y", "6z", "j", "27", "3q", "5d", "70", "k", "6h", "1x", "1y", "20", "3f"], function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) {
        var p = d.resolve("bin"), q = p + a.generate(""), r = i.onDirection("-100000px", "100000px");
        return function (a) {
            var d = j.fromTag("div");
            e.setAll(d, {contenteditable: "true", "aria-hidden": "true"}), h.setAll(d, {
                position: "fixed",
                top: "0px",
                width: "100px",
                height: "100px",
                overflow: "hidden",
                opacity: "0"
            }), g.add(d, [p, q]);
            var i = function (a) {
                m.empty(d), h.set(d, "left", r(a)), l.append(a, d)
            }, s = function () {
                var b = n.ancestor(d, "body");
                b.each(function (b) {
                    a.toOff(b, d)
                })
            }, t = function (a) {
                return f.has(a, q)
            }, u = function () {
                c.consolidate(d, t);
                var a = b.immutable("elements", "html", "container"), e = o.children(d), f = k.get(d);
                return a(e, f, d)
            }, v = function () {
                m.remove(d)
            }, w = function () {
                return d
            };
            return {attach: i, focus: s, contents: u, container: w, detach: v}
        }
    }),g("3d", ["p", "2x", "21", "22", "2y", "5v", "3f"], function (a, b, c, d, e, f, g) {
        return function (h, i) {
            var j = f(h), k = function () {
                h.cleanup();
                var a = j.contents();
                j.detach(), n.trigger.after(a.elements(), a.html(), j.container())
            }, l = b.tap(function () {
                n.trigger.before(), j.attach(i), j.focus(), e.run(g.owner(i), l, k)
            }), m = function () {
                l.instance()
            }, n = d.create({before: c([]), after: c(["elements", "html", "container"])}), o = a.noop;
            return {instance: a.constant(m), destroy: o, events: n.registry}
        }
    }),g("1r", ["2t", "3a", "21", "22", "3b", "3c", "3d", "1d"], function (a, b, c, d, e, f, g, h) {
        var i = a.detect(), j = {
            set: function (a, c) {
                b.setExact(a, c.startContainer(), c.startOffset(), c.endContainer(), c.endOffset())
            }
        }, k = function (a) {
            var b = i.browser.isIE() && "body" !== h.name(a) ? f : e;
            return b(j)
        };
        return function (a) {
            var b = d.create({after: c(["container"])}), e = k(a), f = g(e, a);
            f.events.after.bind(function (c) {
                e.toOn(a, c.container()), b.trigger.after(c.container())
            });
            var h = function () {
                f.instance()()
            };
            return {run: h, events: b.registry}
        }
    }),g("5y", ["w", "k", "1g"], function (a, b, c) {
        var d = function (d) {
            if ("complete" === c.readyState || "interactive" === c.readyState) d(); else var e = a.bind(b.fromDom(c), "DOMContentLoaded", function () {
                d(), e.unbind()
            })
        };
        return {execute: d}
    }),g("3e", ["2t", "5h", "p", "5w", "n", "5x", "5i", "5d", "w", "k", "1x", "5y", "1y"], function (a, b, c, d, e, f, g, h, i, j, k, l, m) {
        var n = b.install("ephox.keurig.init"), o = e.none(), p = a.detect(), q = p.browser,
            r = q.isIE() || q.isSpartan() || p.deviceType.isiOS() || p.deviceType.isAndroid(),
            s = r ? c.noop : d.cached(function (a) {
                var b = j.fromTag("div");
                if (void 0 === a) throw"baseUrl was undefined";
                var c = j.fromTag("iframe");
                h.setAll(b, {display: "none"});
                var d = i.bind(c, "load", function () {
                    var g = function (a) {
                        o = e.some(a), q.isSafari() || m.remove(b)
                    }, h = n.ephemeral(g), i = a + "/wordimport.js";
                    f.write(c, '<script type="text/javascript" src="' + i + '"></script><script type="text/javascript">function gwtInited () {parent.window.' + h + "(com.ephox.keurig.WordCleaner.cleanDocument);};</script>"), d.unbind()
                });
                l.execute(function () {
                    k.append(g.body(), b), k.append(b, c)
                })
            }), t = function (a, b) {
                return o.map(function (c) {
                    return c(a, b)
                })
            }, u = function () {
                return o.isSome()
            };
        return {load: s, cleanDocument: t, ready: u}
    }),g("1t", ["3e"], function (a) {
        return function (b) {
            return a.ready() || a.load(b), {cleanDocument: a.cleanDocument}
        }
    }),g("l", ["1o", "1p", "1q", "1r", "g", "1s", "1t", "p", "n"], function (a, b, c, d, e, f, g, h, i) {
        return function (j, k, l, m) {
            var n = g(m.baseUrl), o = h.curry(c, k), p = d, q = function () {
                    return {clipboardType: f.generate("clipboard-type"), findClipboardTags: i.none}
                }, r = void 0 !== m.intraFlag ? m.intraFlag : q(),
                s = e.flatten([void 0 !== m.intraFlag ? [b.internal(l, p, j, r)] : [], [b.onlyText()], [b.gwt(n, k, m, o)], [b.image(m)]]),
                t = b.pastiche(k, m, l, p, j, o, r);
            return a(s, t)
        }
    }),g("m", ["1o", "1p"], function (a, b) {
        return function () {
            return a([b.text()], b.none())
        }
    }),g("q", [], function () {
        return {officeStyles: "prompt", htmlStyles: "clean"}
    }),g("r", ["j", "k", "1x", "1y", "1z", "20", "1g"], function (a, b, c, d, e, f, g) {
        var h = "powerpaste-styles", i = "#" + h, j = function (d) {
            if (!e.any(i)) {
                var g = "<style>.ephox-cement-flashbin-helpcopy-kbd {font-size: 3em !important; text-align: center !important; vertical-align: middle !important; margin: .5em 0} .ephox-cement-flashbin-helpcopy-kbd .ephox-polish-help-kbd {font-size: 3em !important; vertical-align: middle !important;} .ephox-cement-flashbin-helpcopy a {text-decoration: underline} .ephox-cement-flashbin-loading-spinner {background-image: url(" + d + ") !important; width: 96px !important; height:96px !important; display: block; margin-left: auto !important; margin-right: auto !important; margin-top: 2em !important; margin-bottom: 2em !important;} .ephox-cement-flashbin-loading p {text-align: center !important; margin: 2em 0 !important} .ephox-cement-flashbin-target {height: 1px !important;} .ephox-cement-flashbin-target.ephox-cement-flash-activate {height: 150px !important; width: 100% !important;} .ephox-cement-flashbin-target object {height: 1px !important;} .ephox-cement-flashbin-target.ephox-cement-flash-activate object {height: 150px !important; width: 100% !important;} .ephox-cement-flashbin-helpcopy p {white-space: normal;}</style>",
                    j = b.fromHtml(g);
                a.set(j, "type", "text/css"), a.set(j, "id", h);
                var k = f.first("head").getOrDie("Head element could not be found.");
                c.append(k, j)
            }
        }, k = function () {
            if (e.any(i)) {
                var a = f.first("head").getOrDie("Head element could not be found."),
                    b = f.descendant(a, i).getOrDie("The style element could not be removed");
                d.remove(b)
            }
        };
        return {injectStyles: j, removeStyles: k}
    }),g("v", ["g", "k", "j", "1g"], function (a, b, c, d) {
        var e = function (a) {
            var b = d.createElement("div");
            b.appendChild(a.cloneNode(!0));
            var c = b.innerHTML;
            return b = a = null, c
        }, f = function (d) {
            a.each(a.map(d.getElementsByTagName("*"), b.fromDom), function (a) {
                c.has(a, "data-mce-style") && !c.has(a, "style") && c.set(a, "style", c.get(a, "data-mce-style"))
            })
        };
        return {nodeToString: e, restoreStyleAttrs: f}
    }),g("t", ["21", "22", "v", "j", "k", "1x", "1y", "20"], function (a, b, c, d, e, f, g, h) {
        return function (i) {
            var j = function () {
                var j, k = "", l = "", m = [], n = null, o = b.create({close: a([])}), p = function (a) {
                    k = a
                }, q = function (a) {
                    var b = c.nodeToString(a.dom());
                    l = [{type: "container", html: b}], n = a
                }, r = function (a) {
                    var b = [];
                    a.forEach(function (a, c, d) {
                        b.push({text: a.text, onclick: a.click})
                    }), m = b
                }, s = function (a) {
                    o.trigger.close()
                }, t = function () {
                    j.off("close", s), j.close("close")
                }, u = function () {
                    0 === m.length && (m = [{
                        text: "Close", onclick: function () {
                            j.close()
                        }
                    }]);
                    var a = {
                        title: k,
                        spacing: 10,
                        padding: 10,
                        minWidth: 300,
                        minHeight: 100,
                        layout: "flex",
                        items: l,
                        buttons: m
                    };
                    j = i.windowManager.open(a);
                    var b = e.fromDom(j.getEl()),
                        c = h.descendant(b, "." + d.get(n, "class")).getOrDie("We must find this element or we cannot continue");
                    f.before(c, n), g.remove(c), j.on("close", s)
                }, v = function () {
                    t()
                }, w = function () {
                    t()
                }, x = function () {
                };
                return {
                    events: o.registry,
                    setTitle: p,
                    setContent: q,
                    setButtons: r,
                    show: u,
                    hide: v,
                    destroy: w,
                    reflow: x
                }
            };
            return {createDialog: j}
        }
    }),g("24", ["2c", "n"], function (a, b) {
        var c = a.immutable("url", "html"), d = function (a) {
            return /^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(a)
        }, e = function (a) {
            return d(a) && /.(gif|jpe?g|png)$/.test(a)
        }, f = function (a) {
            var d = /^<a href="([^"]+)">([^<]+)<\/a>$/.exec(a);
            return b.from(d).bind(function (d) {
                var e = c(d[1], a);
                return d[1] === d[2] ? b.some(e) : b.none()
            })
        };
        return {isAbsoluteUrl: d, isImageUrl: e, parseUrlFromLinkHtml: f}
    }),g("u", ["g", "n", "23", "24"], function (a, b, c, d) {
        var e = function (a) {
            return "extra" in a.undoManager
        }, f = function (a, c, d) {
            return e(a) ? (a.undoManager.extra(function () {
                k(a, c)
            }, d), b.some(!0)) : b.none()
        }, g = function (a, b) {
            return f(a, b.html(), function () {
                a.insertContent('<img src="' + b.url() + '">')
            })
        }, h = function (a, b) {
            return f(a, b.html(), function () {
                a.execCommand("mceInsertLink", !1, b.url())
            })
        }, i = function (a, c) {
            return d.parseUrlFromLinkHtml(c).bind(function (c) {
                var e = a.selection.isCollapsed() === !1 && d.isAbsoluteUrl(c.url());
                return e ? h(a, c) : b.none()
            })
        }, j = function (a, c) {
            return d.parseUrlFromLinkHtml(c).bind(function (c) {
                return d.isImageUrl(c.url()) ? g(a, c) : b.none()
            })
        }, k = function (a, c) {
            return a.insertContent(c, {merge: a.settings.paste_merge_formats !== !1, paste: !0}), b.some(!0)
        }, l = function (a, b, d) {
            var e = function (c) {
                return c(a, b)
            };
            return c.findMap(d, e)
        };
        return {until: l, linkSelection: i, insertImage: j, insertContent: k}
    }),g("8", [], function () {
        var a = function (a, b) {
            return a.hasEventListeners(b)
        }, b = function (a, b) {
            return a.fire("PastePreProcess", {content: b}).content
        }, c = function (a, b) {
            var c = a.dom.add(a.getBody(), "div", {style: "display:none"}, b),
                d = a.fire("PastePostProcess", {node: c}).node.innerHTML;
            return a.dom.remove(c), d
        }, d = function (c, d) {
            return a(c, "PastePreProcess") ? b(c, d) : d
        }, e = function (b, d) {
            return a(b, "PastePostProcess") ? c(b, d) : d
        }, f = function (a, b) {
            return e(a, d(a, b))
        }, g = function (a) {
            var b = a.settings, c = a.plugins.powerpaste;
            b.paste_preprocess && a.on("PastePreProcess", function (d) {
                b.paste_preprocess.call(a, c, d)
            }), b.paste_postprocess && a.on("PastePostProcess", function (d) {
                b.paste_postprocess.call(a, c, d)
            })
        };
        return {process: f, registerEvents: g}
    }),g("6", ["l", "m", "g", "n", "o", "p", "d", "q", "r", "s", "t", "u", "8", "v", "w", "k", "x", "2"], function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) {
        return function (s, t, u, v, w) {
            var x, y, z, A, B;
            B = (v ? v.jsUrl : u) + "/js", y = (v ? v.swfUrl : u) + "/flash/textboxpaste.swf", z = (v ? v.imgUrl : u) + "/img/spinner_96.gif", A = (v ? v.cssUrl : u) + "/css/editorcss.css";
            var C = function (a) {
                return a.settings.smart_paste !== !1
            }, D = function (a) {
                return function (b, c) {
                    return b.undoManager.transact(function () {
                        l.insertContent(b, c), n.restoreStyleAttrs(b.getBody()), w.prepareImages(a)
                    }), d.some(!0)
                }
            }, E = function (a, b, c) {
                var d = C(a) ? [l.linkSelection, l.insertImage] : [];
                l.until(a, b, d.concat([D(c)]))
            }, F = function () {
                x && s.selection.moveToBookmark(x), x = null
            };
            s.on("init", function (d) {
                i.injectStyles(z), s.dom.loadCSS(A);
                var l = {
                    baseUrl: B,
                    swf: y,
                    officeStyles: s.settings.powerpaste_word_import || h.officeStyles,
                    htmlStyles: s.settings.powerpaste_html_import || h.htmlStyles,
                    translations: g.translate,
                    allowLocalImages: s.settings.powerpaste_allow_local_images !== !1,
                    enableFlashImport: s.settings.powerpaste_enable_flash_import !== !1,
                    preprocessor: function (a) {
                        return e.pure(a)
                    }
                }, r = k(s), u = p.fromDom(s.getBody()), v = function (a) {
                    a.events.cancel.bind(function () {
                        F()
                    }), a.events.error.bind(function (a) {
                        F(), s.notificationManager ? s.notificationManager.open({
                            text: g.translate(a.message()),
                            type: "error"
                        }) : j.showDialog(s, g.translate(a.message()))
                    }), a.events.insert.bind(function (a) {
                        var b = c.map(a.elements(), function (a) {
                            return n.nodeToString(a.dom())
                        }).join("");
                        s.focus(), q(function () {
                            F(), E(s, m.process(s, b), a.assets()), w.uploadImages(a.assets())
                        }, 1)
                    })
                }, C = a(u, r.createDialog, f.noop, l), D = b();
                c.each([C, D], v), o.bind(u, "paste", function (a) {
                    x || (x = s.selection.getBookmark());
                    var b = t.isText() ? D : C;
                    b.paste(a.raw()), t.reset(), q(function () {
                        s.windowManager.windows[0] && s.windowManager.windows[0].getEl() && s.windowManager.windows[0].getEl().focus()
                    }, 1)
                })
            }), s.on("remove", function (a) {
                1 === r.editors.length && i.removeStyles()
            })
        }
    }),g("7", ["y", "z"], function (a, b) {
        var c = function (a) {
            return tinymce.util.VK.metaKeyPressed(a) && 86 == a.keyCode && a.shiftKey
        };
        return function (d) {
            var e = b(d.settings.paste_as_text), f = b(!1);
            d.on("keydown", function (a) {
                c(a) && (f.set(!0), tinymce.Env.ie && tinymce.Env.ie < 10 && (a.preventDefault(), d.fire("paste", {})))
            });
            var g = a(function () {
                var a = d.translate("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.");
                d.notificationManager.open({text: a, type: "info"})
            }), h = function () {
                var a = this, b = !e.get();
                a.active(b), e.set(b), d.fire("PastePlainTextToggle", {state: b}), b === !0 && 0 != d.settings.paste_plaintext_inform && g(), d.focus()
            }, i = function () {
                f.set(!1)
            }, j = function () {
                return f.get() || e.get()
            };
            return {toggle: h, reset: i, isText: j}
        }
    }),g("10", [], function () {
        var a = 0, b = 1, c = -1, d = function (a) {
            return parseInt(a, 10)
        }, e = function (a) {
            return function () {
                return a
            }
        }, f = function (a, b, c) {
            return {major: e(a), minor: e(b), patch: e(c)}
        }, g = function (a) {
            var b = /([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(a);
            return b ? f(d(b[1]), d(b[2]), d(b[3])) : f(0, 0, 0)
        }, h = function (d, e) {
            var f = d - e;
            return 0 === f ? a : f > 0 ? b : c
        }, i = function (b, c) {
            var d = h(b.major(), c.major());
            if (d !== a) return d;
            var e = h(b.minor(), c.minor());
            if (e !== a) return e;
            var f = h(b.patch(), c.patch());
            return f !== a ? f : a
        };
        return {nu: f, parse: g, compare: i}
    }),g("9", ["10"], function (a) {
        var b = function (a) {
            var b = [a.majorVersion, a.minorVersion].join(".");
            return b.split(".").slice(0, 3).join(".")
        }, c = function (c) {
            return c ? a.parse(b(c)) : null
        }, d = function (b, d) {
            return a.compare(c(b), a.parse(d)) < 0
        };
        return {getVersion: c, isLessThan: d}
    }),g("a", ["11"], function (a) {
        var b = function (a, b) {
            return function () {
                var c = a.console;
                c && b in c && c[b].apply(c, arguments)
            }
        };
        return {log: b(a, "log"), error: b(a, "error"), warn: b(a, "warm")}
    }),g("1", ["3", "4", "5", "6", "7", "8", "9", "a", "2"], function (a, b, c, d, e, f, g, h, i) {
        return function (j) {
            return g.isLessThan(i, "4.0.0") ? (h.error('The "powerpaste" plugin requires at least 4.0.0 version of TinyMCE.'), function () {
            }) : function (g, h) {
                var k = e(g), l = function () {
                    var b = a(g);
                    d(g, k, h, j, b), g.settings.powerpaste_block_drop || c(g, h, j, b)
                }, m = function () {
                    b(g, k, j)
                }, n = function () {
                    var a = this;
                    a.active(k.isText()), g.on("PastePlainTextToggle", function (b) {
                        a.active(b.state)
                    })
                };
                i.Env.ie && i.Env.ie < 10 ? m() : l();
                var o = function (a) {
                    g.dom.bind(a, "drop dragstart dragend dragover dragenter dragleave dragdrop draggesture", function (a) {
                        return i.dom.Event.cancel(a)
                    })
                };
                g.settings.powerpaste_block_drop && g.on("init", function (a) {
                    o(g.getBody()), o(g.getDoc())
                }), f.registerEvents(g), g.addButton("pastetext", {
                    icon: "pastetext",
                    tooltip: "Paste as text",
                    onclick: k.toggle,
                    onPostRender: n
                }), g.addMenuItem("pastetext", {
                    text: "Paste as text",
                    selectable: !0,
                    onclick: k.toggle,
                    onPostRender: n
                })
            }
        }
    }),g("0", ["1", "2"], function (a, b) {
        return function (c) {
            b.PluginManager.requireLangPack("powerpaste", "ar,ca,cs,da,de,el,es,fa,fi,fr_FR,he_IL,hr,hu_HU,it,ja,kk,ko_KR,nb_NO,nl,pl,pt_BR,pt_PT,ro,ru,sk,sl_SI,sv_SE,th_TH,tr,uk,zh_CN,zh_TW"), b.PluginManager.add("powerpaste", a(c))
        }
    }),d("0")()
}();
